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.
[ERROR]Gleicher Name"xxxxxx.SampleResponse"Klasse von/Die Schnittstelle wird bereits verwendet.
Verwenden Sie die Klassenanpassung, um diesen Konflikt zu lösen.
[ERROR] A class/interface with the same name "xxx" is already in use.
Use a class customization to resolve this conflict.
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.
Recommended Posts