7

我有一个由 .NET 生成的 wsdl,我试图在 Java 应用程序中使用它。为此,我正在尝试使用 CXF Wsdl2Java 工具。问题是当工具运行时,它会抛出一个 jaxb 异常:

Thrown by JAXB: Two declarations cause a collision in the ObjectFactory class.

我知道我可能需要创建一个自定义绑定文件来在构建时重命名一个对象,但我不知道从哪里开始。如何找出 wsdl 中的哪些对象导致了问题?

(如果异常实际上说明了哪些元素导致了命名冲突,那似乎会很好)

4

2 回答 2

1

这可能有效:

  1. 告诉 cxf 解决名称冲突: -autoNameResolution 命令行参数
  2. 告诉 jaxb 不要删除下划线: jaxb:globalBindings underscoreBinding="asCharInWord"
于 2012-09-25T11:01:00.630 回答
0

除了上述之外,请确保您使用的是最新版本的 CXF 的 wsdl2java 工具。最新版本在尝试获取 JAXB 发现这些类型错误的行/列号方面做得更好。这至少可以给出一个基本的指示,但它们仍然不容易追踪。

于 2012-09-25T18:02:22.970 回答