SOAP-web-service, ohne WSDL an das Ende der URL
Ich habe einen web service bereitgestellt Steg. Ich benutze die SOAP-UI zu nennen, über einen link wie http://ip:port/DefaultRequestListener?workflow=WsdlCPF&soapAction=Import
und es funktioniert.
Ich habe immer gearbeitet, mit dem service hatte ?wsdl an das Ende der url, aber jetzt bin ich verwirrt.
Warum gibt es keine ?wsdl an das Ende der url?
Die url sieht ziemlich seltsam für einen web-service. Hinzufügen der
- Welche Bibliothek hast du zum erstellen der ws? - Was sehen Sie, wenn Sie gehen, um
David, danke für die Antwort. Ich wusste nicht, erstellen Sie dieses ws. Im brouwser wia-link sehe ich:
Ich machte einen Fehler in der letzten Frage beim schreiben der url. Ich wollte überprüfen, wenn Sie können finden Sie in der wsdl im browser. Ich meinte gehen Sie zu:
Auch in der SOAP-UI Antwort, die ich finden Sie unter:
wsdl
parameter, um die Endpunkt-url, erzählt der zugrunde liegenden soap-Implementierung zu generieren, die den Inhalt der bereitgestellten wsdl. In der Regel im ws url es gibt nur einen parameter, das ist, warum wir hinzufügen ?wsdl
. SoapUI benötigt man entweder eine url zurückgibt, die den Inhalt einer wsdl-Datei (das ist die url+?wsdl) oder eine wsdl-Datei gespeichert in Festplatte zum Beispiel. Haben Sie mehr info:- Welche Bibliothek hast du zum erstellen der ws? - Was sehen Sie, wenn Sie gehen, um
http://ip:port/DefaultRequestListener?workflow=WsdlCPF&soapAction=Import
im browser? - Und wenn Sie gehen, um http://ip:port/DefaultRequestListener?workflow=WsdlCPF&soapAction=Import?wsdl
?David, danke für die Antwort. Ich wusste nicht, erstellen Sie dieses ws. Im brouwser wia-link sehe ich:
HTTP ERROR: 400 Problem accessing /DefaultRequestListener. Reason: Error executing the request Powered by Jetty://
- Und wenn ich hinzufügen ?wsdl-ich sehe: 1 Processflow error occured. Please check programm Logs!
Ich machte einen Fehler in der letzten Frage beim schreiben der url. Ich wollte überprüfen, wenn Sie können finden Sie in der wsdl im browser. Ich meinte gehen Sie zu:
http://ip:port/DefaultRequestListener?workflow=WsdlCPF&soapAction=Import&wsdl
Hinweis, ich habe die letzten ?
durch eine &
.Auch in der SOAP-UI Antwort, die ich finden Sie unter:
Content-Type: text/html
. Aber wenn es Seife ws ich sollte sehen, ` text/xml`. Richtig?InformationsquelleAutor May12 | 2015-11-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen Web Service-Endpunkt hat in der Regel eine url, die wie folgt aussieht:
Es nicht
wsdl
parameter. Dies ist die url des web-service selbst, die eine, die aufgerufen wird, durch den Kunden.Meisten web-service-frameworks haben eine praktische Funktion, in der Sie anzeigen der url des Endpunkts mit einer
wsdl
url-parameter zu einer Webseite zeigt, den Inhalt der WSDL für die web service. Also diese url:Ist wie der dem server mitteilt: "Zeigen Sie mir die wsdl Datei für den web service endpoint". Die Inhalte, die Sie sehen in dieser Webseite ist nicht eine wsdl-Datei gespeichert, in der Scheibe, es ist nur der Inhalt der wsdl-das framework generiert.
Diese Funktion ist sehr nützlich, denn wenn wir möchten, erstellen Sie einen client für die web service-wir brauchen nicht zu gehen Fragen Sie nach der wsdl-Datei, können wir gehen Sie einfach und Holen es aus, die url.
In SoapUI
All dies bedeutet, dass in SoapUI erstellen Sie ein neues Projekt und sagen Sie ihm, dass die wsdl-Datei kann hier gefunden werden:
http://server:port/services/myservice?wsdl
. Wenn Sie ihm sagen, dass die wsdl-Datei:http://server:port/services/myservice
wird es werfen eine Fehlermeldung wie nicht eine wsdl-Datei.Alternativ können Sie geben Sie den Speicherort der wsdl-Datei, die Sie in der Festplatte anstatt der url ein und es sollten die gleichen ws-client.
Dann SoapUI wird die wsdl Lesen, und er wird sehen, dass der Endpunkt für den web-service
http://server:port/services/myservice
so ist dieses, wo er senden wird den Anforderungen.Ihre web-Dienst
In Ihrem Fall, da Sie bereits die übergabe von url-Parametern an den Endpunkt, die Sie betrachten können, dass Ihr webservice aufgerufen wird, werden unter der url:
Und wenn Sie wollen, um zu sehen, die wsdl für die web service, fügen Sie einfach ein
wsdl
parameter an die url an. Beachten Sie, dass wie jedes andere url-query-symbol?
nur zeigt, dass die url endet dort und neben Charaktere sind url-Parameter, die getrennt sind von&
. In Ihrem Fall haben Sie 3 Parameter (workflow, soapAction-und jetzt wsdl):Dies ist die wsdl-Inhalt, darunter natürlich auch die xml-Typen verwendet, die im web-service, alles normal.
Vielleicht sieht es seltsam aus, weil Sie in der wsdl-Datei Sie haben, in die Diskette nicht zeigen, dass alle diese Arten und stattdessen importiert die
xsd
- Dateien enthalten die Definitionen. Die wsdl-sehen Sie in Ihrem browser wird nie haben die Importe so, und wird immer zeigen alle Arten, eingebettet in die wsdl-Datei.Blättern Sie nach unten vorbei an all den Typen, Definitionen und sehen Sie den rest der wsdl.
Ich hoffe, es half, um klar zu machen, dass die url mit
?wsdl
am Ende ist nicht die web-service-und es ist nur die wsdl-Inhalt.InformationsquelleAutor David Lizárraga