3

我正在使用 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 特定功能被禁用。

更奇怪的是我发现的一篇文章:

http://www.objectpartners.com/2010/11/25/leveraging-apache-cxf-and-maven-to-generate-client-side-web-service-bindings/

其中提到生成的类使用不同的类,即:org.apache.cxf.jaxb.JAXBToStringStyle

任何帮助将不胜感激。

4

0 回答 0