1

我正在尝试将我的项目从 EAP 6.3 转换为 Wildfly Swarm ......

我在使用 CXF 时遇到了一些问题。

我有分数依赖:

<dependency>
  <groupId>org.wildfly.swarm</groupId>
  <artifactId>camel-cxf</artifactId>
</dependency>

稍后,我将其包含在内,否则我的"package org.apache.cxf.message does not exist"骆驼处理器代码中会出现错误

    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-transports-http</artifactId>
        <version>3.1.9</version>
    </dependency>

因此,如果我包含它,我会收到错误消息:

在 ws 端点部署中检测到 Apache CXF 库 (cxf-core-3.1.9.jar);要么提供一个适当的部署来替换具有容器模块依赖关系的嵌入式库,要么为当前部署禁用 webservices 子系统,为其添加适当的 jboss-deployment-structure.xml 描述符。推荐使用前一种方法,因为后一种方法会导致大多数 Web 服务 Java EE 和任何 JBossWS 特定功能被禁用。

好的,所以camel-cxf模块和我的jar之间可能存在lib冲突......或者它没有选择我的jboss-deployment-structure.xml文件?

我已经按照其他帖子的建议尝试了一些事情。

我尝试将其添加到 ${basedir}/src/main/webapp/WEB-INF 下的 jboss-deployment-structure.xml 中,并将 xml 文件添加到 maven-war-plugin 的 webResources 中。

  <deployment>
    <exclude-subsystems>
        <subsystem name="webservices" /> 
    </exclude-subsystems>  
  </deployment>

我也尝试将其添加到 jboss-deployment-structure.xml:

<dependencies>
    <module name="org.apache.cxf" />
    <module name="org.apache.cxf.impl" />
</dependencies>

但我不断收到这个错误。所以我不确定如何解决这个冲突。任何想法?

4

1 回答 1

0

一种方法是使用 Jboss 提供的 CXF 库并设置<scope>provided</scope>cxf-rt-transports-http,以便编译但不打包 CXF 依赖项。

您可以在Jboss 特定配置上找到更多信息

于 2017-01-06T05:11:44.567 回答