我正在使用 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
任何帮助将不胜感激。