[JAVA] wsimport-Fehlerbehandlung (Eine Klasse / Schnittstelle mit dem gleichen Namen "xxx" wird bereits verwendet)

Die Fehlermeldung, die in wsimport aufgetreten ist und für die automatische Generierung von Soap-Client-Code für Java verwendet wird, ist auf Japanisch, und ich konnte sie nicht finden, wenn es sich um japanische Informationen handelte. Deshalb habe ich einen kleinen Umweg gemacht.

Fehlermeldung

Auf Japanisch

[ERROR]Gleicher Name"xxxxxx.SampleResponse"Klasse von/Die Schnittstelle wird bereits verwendet.
Verwenden Sie die Klassenanpassung, um diesen Konflikt zu lösen.

Auf Englisch

[ERROR] A class/interface with the same name "xxx" is already in use. 
Use a class customization to resolve this conflict.

Ursachen und Gegenmaßnahmen

Es gibt zwei mögliche Ursachen.

--Duplizieren Sie den Namen aufgrund einer willkürlichen Angabe des Paketnamens durch Angabe der Option "-p"

Im ersteren Fall kann es gelöst werden, indem "wsimport" ausgeführt wird, ohne die Option "-p" anzugeben (dh gemäß "wsdl").

In meinem Fall war es das letztere. Insbesondere scheint es schlecht, dass es eine Definition mit demselben Namen () wie die folgende "SampleResponse" gibt. Wenn Sie eine der Definitionen löschen, verschwindet der doppelte Fehler, es handelt sich jedoch um einen Fehler, da von der Methode auf ihn verwiesen wird.

hoge.wsdl


<s:element name="SampleResponse">
  <s:complexType>
    <s:sequence>
      <s:element minOccurs="1" maxOccurs="1" name="Response" nillable="true" type="tns:SampleResponse" />
    </s:sequence>
  </s:complexType>
</s:element>
<s:complexType name="SampleResponse">
  <s:sequence>
    <s:element minOccurs="0" maxOccurs="1" name="Result" type="tns:SampleResponseResult" />
    <s:element minOccurs="0" maxOccurs="1" name="ApplicationResponse" type="tns:SampleResponseApplicationResponse" />
  </s:sequence>
</s:complexType>

Geben Sie in diesem Fall als Gegenmaßnahme die folgenden Optionen im Befehl wsimport an. Beachten Sie, dass nach -B kein Leerzeichen steht.

-B-XautoNameResolution

In diesem Fall werden die Klassen "SampleResponse" und "SampleResponse2" generiert. Ändern Sie sie daher entsprechend.

Referenz

Recommended Posts

wsimport-Fehlerbehandlung (Eine Klasse / Schnittstelle mit dem gleichen Namen "xxx" wird bereits verwendet)
Ungültiger Routenname, bereits verwendet: So beheben Sie den Fehler in 'new_user_session'
Beim Hochladen einer Datei mit Spring Boot wird eine Fehlerbehandlung durchgeführt, wenn die maximale Dateigröße überschritten wird.
Verwendung derselben Mapper-Klasse in mehreren Datenquellen mit Spring Boot + MyBatis
Java learning_Behavior, wenn ein Feld mit demselben Namen und eine Methode mit demselben Namen in zwei Klassen in einer Vererbungsbeziehung vorhanden sind
Ausnahmebehandlung mit einer Fluidschnittstelle
Fehler, wenn das in SpringWebFlux verwendete Mitglied der Entity-Klasse endgültig ist
Was ist eine Klasse in der Java-Sprache (2 /?)
Benennen und rufen Sie in Ruby übergeordnete Klassenmethoden explizit auf
Gibt es keinen Namenskonflikt, wenn enum in der switch-Anweisung denselben Namen hat?
Androd: Was tun gegen "The Realm befindet sich bereits in einer Schreibtransaktion in"
Wenn Sie sich im Klassennamen verlieren
Grundlagen der Java-Fehlerbehandlung - Die Geschichte, die abfängt, wird nur im Vordergrund aufgegriffen
Eine Warnung wird angezeigt, wenn versucht wird, eine große Ganzzahl mit den speziellen Variablen $ 1, $ 2, $ 3 ... zu verwenden.