2

我正在尝试在来自第 3 方的 WSDL 中执行 wsimport(通过 netbeans 6.9.1),但它一直在 JAXB 中生成此错误:

Two declarations cause a collision in the ObjectFactory class.

碰撞是关于这两件事:

在messages.xsd 中:

<xs:element name="PingRequest" nillable="true" type="tns:PingRequest" />

在 service.xsd 中:

<xs:element name="Ping">
  <xs:complexType>
    <xs:sequence>
      <xs:element xmlns:q1="http://www.3rd-party-uri-here/messages/" minOccurs="0" name="request" nillable="true" type="q1:PingRequest" /> <!-- HERE! -->
    </xs:sequence>
  </xs:complexType>
</xs:element>

我在 stackoverflow 中看到 JAXB 无法处理两个不同元素具有相同名称或名称仅大写不同的情况。但是,在这种情况下,这两个元素实际上应该是相同的(第二个引用第一个)。那么,我能做些什么呢?

4

1 回答 1

1

我有一个类似的问题,在这里描述:wsimport - 两个声明导致冲突,给定相同的行号

运行此命令时出现此错误:

wsimport ./bwWsdl.xml -p com.generated -Xnocompile -d ../src -extension -keep -XadditionalHeaders -B-XautoNameResolution

感谢@Petru Gardea 的帮助,我最终能够通过省略-p com.generatedwsimport 的包规范来解决这个问题。所以这就是我最终能够解决这个问题的方法:

wsimport ./bwWsdl.xml -Xnocompile -d ../src -extension -keep -XadditionalHeaders -B-XautoNameResolution
于 2012-08-09T15:54:41.343 回答