我试图在Wildfly 8.2中部署我的war文件。我的应用程序使用org.apache.cxf进行Web服务。但Wildfly(Jboss)默认使用自己的cxf jar,它可以提供完整的Java EE支持。我可以通过
消除jboss cxf并使用我自己的cxf jar进行Web服务的JBoss部署-structure.xml
<jboss-deployment-structure>
<deployment>
<exclude-subsystems>
<subsystem name="webservices" />
</exclude-subsystems>
</deployment>
</jboss-deployment-structure>
但它会禁用jboss支持ws,这意味着我甚至无法在Jboss管理控制台中找到ws端点。但我的客户需要利用jboss构建的ws功能,以便他可以随时禁用或启用任何ws调用。有谁知道如何配置我的应用程序以利用jboss的cxf jar,以便我可以随时在Jboss管理控制台中调整我的ws。以下链接解释了我到目前为止所提到的完全相同的内容。我已成功使用第一个选项,但我需要它才能使用第二个选项。
http://cxf.apache.org/docs/application-server-specific-configuration-guide.html
注意:请参阅第一个主题(JBoss Application Server)
我似乎无法弄清楚如何配置我的应用程序来使用jboss的cxf jar ..!
如果我从build.gradle文件中删除所有org.apache.cxf依赖项,它会给出ClassNotFoundException错误,这实际上告诉我它可以找到cxf-transport jar。
Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: java.lang.ClassNotFoundException: org.apache.cxf.transport.servlet.CXFServlet
如果我在build.gradle文件中包含org.apache.cxf依赖项,则表明它与cbf jar冲突,而cxf jar也存在于Jboss中。整个问题是我需要通过消除用户定义的cxf jar来利用jboss中存在的cxf来获得完整的Java EE支持。
答案 0 :(得分:0)
这可能与其他一些依赖性重叠,这意味着不同的版本。
我遇到了同样的情况,不得不测试并删除org.apache.cxf中的所有非nesesery,特别是不赞成使用的那些:
保持兼容性对所有人使用${cxf.version}
非常重要
org.apache.cxf
,特别是对于更高版本,如果其他依赖项引入旧的cxf库,则检查依赖关系层次结构。