如何从Wildfly(Jboss)为ws端点访问CXF jar



我尝试在Wildfly 8.2中部署我的war文件。我的应用程序使用org.apache.cxf进行web服务。但默认情况下,Wildfly(Jboss)自带cxf-jar,可以提供完整的Java EE支持。我可以取消jboss cxf,并通过使用我自己的cxf jar进行web服务

jboss-deployment-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应用程序服务器)

我似乎不知道如何配置我的应用程序来利用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依赖项,这表明它与Jboss中也存在的cxf-jar冲突。整个问题是,我需要利用jboss中的cxf,通过消除用户定义的cxf-jar来实现对Java EE的全面支持。

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

我也遇到了同样的情况,不得不测试并从org.apache.cxf中删除所有不存在的内容,尤其是不推荐使用的内容,如:

  • cxf-rt-rs扩展提供商
  • cxf分发清单
  • cxf捆绑jaxrs和
  • cxf-rt前端jaxrs

对所有用户使用${cxf.version}对于保持兼容性很重要org.apache.cxf,特别是对于更高版本,如果其他依赖项引入了旧的cxf库,请检查依赖项层次结构。

最新更新