如何从Wildfly(Jboss)访问用于ws端点的CXF jar

The*_*der 6 deployment jboss web-services cxf wildfly-8

我试图在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>
Run Code Online (Sandbox Code Playgroud)

但它会禁用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
Run Code Online (Sandbox Code Playgroud)

如果我在build.gradle文件中包含org.apache.cxf依赖项,则表明它与jboss中也存在的cxf jar冲突.整个问题是我需要通过消除用户定义的cxf jar来利用jboss中存在的cxf来获得完整的Java EE支持.

zhr*_*ist 0

这可能与其他一些依赖项重叠,这意味着不同的版本。

我遇到了同样的情况,必须测试并从 org.apache.cxf 中删除所有不需要的内容,尤其是已弃用的内容,例如:

  • CXF-RT-RS-扩展提供商,
  • CXF 分发清单,
  • CXF-捆绑-jaxrs 和
  • CXF-RT-前端-JAXRS。

对于保持${cxf.version}所有版本的 兼容性非常重要org.apache.cxf,特别是对于更高版本,并检查依赖关系层次结构(如果其他依赖项引入了较旧的 cxf 库)。