我正在尝试将我的项目从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>
但我一直收到这个错误。所以我不确定如何解决这个冲突。有什么想法吗?
答案 0 :(得分:0)
一种方法是使用Jboss提供的CXF库并为<scope>provided</scope>
设置cxf-rt-transports-http
,以便它编译但不包装CXF依赖项。