繁体   English   中英

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

[英]How to access CXF jars from Wildfly (Jboss) for ws endpoints

我试图在 Wildfly 8.2 中部署我的战争文件。 我的应用程序将 org.apache.cxf 用于 Web 服务。 但是 Wildfly (Jboss) 默认带有自己的 cxf jar,可以提供完整的 Java EE 支持。 我可以消除 jboss cxf 并通过

jboss-部署-结构.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 jars..!

如果我从 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 冲突。 整个问题是我需要通过消除用户定义的 cxf jar 来利用 jboss 中存在的 cxf 来获得完整的 Java EE 支持。

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

我遇到了同样的情况,不得不测试并从 org.apache.cxf 中删除所有非必要的,尤其是不推荐使用的,例如:

  • cxf-rt-rs-extension-providers,
  • cxf-分发清单,
  • cxf-bundle-jaxrs 和
  • cxf-rt-前端-jaxrs。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM