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