Axis2 WSDL2Java: kein argument Betrieb in generierten Stub fehlen
-
11-07-2019 - |
Frage
Ich habe in meinem Webservice eines einfacher public boolean isAlive()
Service bekommt.
I definierte es in meinem WSDL:
<wsdl:types>
<xsd:element name="isAliveResponse" type="xsd:boolean">
</xsd:element>
</wsdl:types>
<wsdl:message name="isAliveResponse">
<wsdl:part element="ns:isAliveResponse" name="parameters"/>
</wsdl:message>
<wsdl:portType name="myService">
<wsdl:operation name="isAlive">
<wsdl:output message="ns:isAliveResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="myServiceSOAP" type="ns:myService">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="isAlive">
<soap:operation soapAction="http://myServiceURL/isAlive" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
Wenn ich den Service Skelett erzeugen das Verfahren erzeugt wird, aber nicht in der Client-Stub. Gibt es ein Problem in der WSDL? Soll ich eine WSDL-Datei: Eingang, auch wenn die Methodenargumente nicht haben (ich die ganze WSDL nicht gestellt, aber alle anderen Verfahren mit einer „Anfrage“ arg gut erzeugt werden)? Und wenn ich eine WSDL-Datei zu setzen haben: Eingang, was wäre es Nachricht
Bearbeiten : Nach dem WSDL unter Eclipse-Validierung ich die Warnung WS-I: (BP2208) wsdl:operation was not a request/response or one-way operation
habe nach der Suche ich eine Beschreibung hier: http://www.ws-i.org/Testing/Tools/2005/01/BP11_TAD_1-1.htm#BP2208 (es scheint, der Anker nicht funktioniert) so dass ich denke der Fehler wahrscheinlich die fehlenden wsdl ist. Eingabe
Lösung
Wie gesagt in meinem bearbeiten war das Problem der fehlenden wsdl: Eingang. Durch das Hinzufügen
<wsdl:input message="ns:isAliveRequest" />
und
<wsdl:message name="isAliveRequest"></wsdl:message>
dann ist meine ursprüngliche Problem ... Schluss gelöst, sollte ich mehr bei mir selbst gesucht, bevor SO fragen auf: (
Andere Tipps
Ich bin mir nicht sicher, ob dies Ihr Problem ist aber die folgende Zeile scheint keinen schließenden Tag zu haben:
<wsdl:types>
<xsd:element name="isAliveResponse" type="xsd:boolean">
</wsdl:types>
Es sollte so aussehen:
<wsdl:types>
<xsd:element name="isAliveResponse" type="xsd:boolean"/>
</wsdl:types>
Hope, das hilft.