Deployment 在WildFly上部署Apache Isis
我正试图在WildFly服务器上部署一个Apache Isis项目 该项目只是simpleapp-archetype-1.10.0,它与mvn antrun:run-p self host和mvn jetty:run war启动并运行良好 对于jetty部分,我将配置添加到父pom.xml的org.eclipse.jetty插件中Deployment 在WildFly上部署Apache Isis,deployment,jetty,wildfly,isis,Deployment,Jetty,Wildfly,Isis,我正试图在WildFly服务器上部署一个Apache Isis项目 该项目只是simpleapp-archetype-1.10.0,它与mvn antrun:run-p self host和mvn jetty:run war启动并运行良好 对于jetty部分,我将配置添加到父pom.xml的org.eclipse.jetty插件中 <plugin> <groupId>org.eclipse.jetty</groupId> <artifac
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.3.2.v20150730</version>
<configuration>
<war>${project.basedir}/webapp/target/simpleapp.war</war>
</configuration>
</plugin>
org.eclipse.jetty
jetty maven插件
9.3.2.v20150730
${project.basedir}/webapp/target/simpleapp.war
现在我想在WildFly服务器上部署它,但出现以下错误:
无法上载部署:{“WFLYCTL0080:失败的服务”=>{“jboss.deployment.unit.\“simpleapp.war\”.WeldStartService”=>“org.jboss.msc.service.StartException in service jboss.deployment.unit.\“simpleapp.war”\“.WeldStartService:无法启动服务,原因是:org.jboss.weld.exceptions.DeploymentException:weld-001408:注入点处带有限定符@Default的IsisJdoSupport类型的未满足依赖项[BackedAnnotatedField]@Inject org.apache.isis.objectstore.jdo.datanucleus.service.support.TimestampService.isisJdoSupport位于org.apache.isis.objectstore.jdo.datanucleus.service.support.TimestampService.isisJdoSupport(TimestampService.java:0)}
如何修复此错误,以及jetty为何绕过此错误?我通过Apache Isis邮件列表得到了答案 错误表明WildFly尝试进行CDI工作。Jetty只是一个web服务器,不支持像CDI这样的Java EE内容。尝试禁用此应用程序的CDI支持(我不知道具体如何) 要修复此错误,请执行以下操作: 使用以下代码将文件jboss all.xml添加到简单应用程序Webapp/Web页面/Web-INF:
<jboss xmlns="urn:jboss:1.0">
<weld xmlns="urn:jboss:weld:1.0" require-bean-descriptor="true"/>
</jboss>
但是要归功于Martin Grigorov。CDI/Weld可以在Jetty上使用,但目前只有当包含在war的
WEB-INF/lib
中时才可以使用(您还可以在Jetty发行版上设置一些WebAppContext配置,以允许Weld通过WebApp类加载器隔离)是的。在我在Apache Isis邮件列表中的回答中,我的意思是Jetty在默认情况下不会尝试扫描CDI组件。如果您添加Weld并对其进行配置,那么它就会工作。Apache Wicket示例演示了如何做到这一点。