Frage

Ich versuche, eine wsimport zu tun (durch NetBeans 6.9.1) in einer WSDL von einer dritten Partei, aber es hält diesen Fehler in JAXB zu erzeugen:

Two declarations cause a collision in the ObjectFactory class.

Die Kollision ist über diese zwei Dinge:

In messages.xsd:

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

In 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>

Ich sehe hier in Stackoverflow, dass JAXB nicht Fälle behandeln kann, wurden zwei verschiedene Elemente haben die gleichen Namen oder die Namen von Großschreibung nur unterscheiden. in diesem Fall sollten jedoch die beiden Elemente wirklich den Samething sein (der zweite verweist auf den ersten). Also, was kann ich tun?

War es hilfreich?

Lösung

Ich hatte ein ähnliches Problem, hier beschrieben: wsimport - zwei Erklärungen Ursache Kollision, gleiche Zeilennummer angegeben

Ich habe diesen Fehler, wenn Sie diesen Befehl ausführen:

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

Dank der Hilfe von @Petru Gardea konnte ich schließlich daran vorbei, durch die -p com.generated Paket Spezifikation wsimport weggelassen wird. Also das ist, was ich schließlich in der Lage war zu laufen Vergangenheit dieses Problem zu umgehen:

wsimport ./bwWsdl.xml -Xnocompile -d ../src -extension -keep -XadditionalHeaders -B-XautoNameResolution
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top