Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Deployment 在WildFly上部署Apache Isis_Deployment_Jetty_Wildfly_Isis - Fatal编程技术网

Deployment 在WildFly上部署Apache Isis

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

我正试图在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>
    <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示例演示了如何做到这一点。