Wildfly Swarm和cxf-rt-transports-http

时间:2017-01-05 15:20:34

标签: jboss cxf wildfly wildfly-10 wildfly-swarm

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

我在使用CXF时遇到了一些麻烦。

我有分数依赖:

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

然后,我将其包括在内,因为否则我的Camel处理器代码出现"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>

但我一直收到这个错误。所以我不确定如何解决这个冲突。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

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

您可以在Jboss specific configuration

上找到更多信息