ObjectFactory中碰撞的两件事应该只有一件

时间:2010-12-13 13:41:22

标签: java jaxb wsimport

我正在尝试在第三方的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无法处理的情况是两个不同的元素具有相同的名称或名称,仅通过大小写不同。但是,在这种情况下,两个元素应该是相同的(第二个是引用第一个)。那么,我该怎么办?

1 个答案:

答案 0 :(得分:1)

我遇到了类似的问题,如下所述:wsimport - two declarations cause collision, same line number given

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

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

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

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