Ich habe Java WebService-Code in meiner Eclipse. Ich habe @WebService @Webmethod, @XmlElements, @XmlType, @XmlAccessorType verwendetLoswerden <arg0>
Jetzt erzeuge ich wsdl mit java2ws Befehl von CXF-Framework. Hier ist der Befehl
F:\....\code\java2wsdl>java2ws -o CustomerVxRR.wsdl -d <myOutputDir> -wsdl -cp <myClassesFolder> <ServiceImpl class>
meine WSDL-Datei agr0 als Name contqins, die will ich nicht, denn wenn ich es SoapUI bin importieren. Es fügt Tag um das Feld hinzu. Hier
ist Wsdl Teil mit arg0
<xs:schema ..... >
<xs:complexType name="myServiceMethodName">
<xs:sequence>
<xs:element minOccurs="0" name="arg0" type="tns:ServiceInputClassName"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ServiceInputClassName">
<xs:sequence>
<xs:element minOccurs="0" name="EmpID" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xz:schema>
Hier wird das Request-Objekt, das in SOAPUI erzeugt wird
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cus="http://customeroffer.manage.ws.hello.my.com/">
<soapenv:Header/>
<soapenv:Body>
<cus:myServiceMethodName>
<!--Optional:-->
<arg0>
<EmpID >123456</EmpID>
</arg0>
</cus:myServiceMethodName>
</soapenv:Body>
</soapenv:Envelope>
Wenn ich Tag entfernen erhalte ich diese Antwort:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<soap:Fault>
<faultcode>soap:Client</faultcode>
<faultstring>Unmarshalling Error: unexpected element (uri:"", local:"EmpID"). Expected elements are <{}empid></faultstring>
</soap:Fault>
</soap:Body>
</soap:Envelope>
Ich möchte arg0 in der Anfrage XML
nicht behalten
Hinzufügen zu den oben genannten, müssen Sie möglicherweise sicherstellen, dass die Schnittstellenklasse das @WebParam hat, wenn Sie eins haben. –