我使用的是cxf-codegen-plugin版本2.7.13(与Wildfly的cxf版本相同)。我想从wsdl生成toString方法,所以我添加-xjc-Xts参数和依赖项:
<dependency>
<groupId>org.apache.cxf.xjcplugins</groupId>
<artifactId>cxf-xjc-ts</artifactId>
<version>3.0.3</version>
</dependency>
生成的类使用org.apache.cxf.xjc.runtime.JAXBToStringStyle来创建仅在以下位置可用的toString方法:
<dependency>
<groupId>org.apache.cxf.xjc-utils</groupId>
<artifactId>cxf-xjc-runtime</artifactId>
</dependency>
这个依赖项不在wildfly cxf模块中,因此当我使用带有“提供”范围的这种依赖时,我得到错误:
java.lang.ClassNotFoundException: org.apache.cxf.xjc.runtime.JAXBToStringStyle
当我将应用程序与依赖项一起部署时,我收到以下错误:
在ws端点部署中检测到的Apache CXF库(cxf-xjc-runtime-2.6.2.jar);或者提供适当的部署,用嵌入式库替换容器模块依赖性,或者为当前部署禁用webservices子系统,为其添加适当的jboss-deployment-structure.xml描述符。建议使用前一种方法,因为后一种方法会导致大多数Web服务Java EE和任何JBossWS特定功能被禁用。
让我更奇怪的是我发现的一篇文章:
提到生成的类使用不同的类,即: org.apache.cxf.jaxb.JAXBToStringStyle
任何帮助将不胜感激。