Anfänger: Soap-Request-Response-Aufruf von java
Ich versuche, eine SOAP-Anfrage und erhalten einer SOAP-Antwort, die von Java, und dann rufen Sie es von der JSP-Seite. Ich recherchierte viele Websites, und versuchen, viele Möglichkeiten, es scheint nicht in der Lage, um es arbeiten.
URL u = new URL("http://www.mysitename.com/mysoaprequest.wsdl");
URLConnection uc = u.openConnection();
HttpURLConnection connection = (HttpURLConnection) uc;
....
Kann ich Sie einfach erstellen Sie eine wsdl-Datei mit den soap request xml-innen?
Lese ich etwas über Web-Service, muss ich einige Web-Service arbeiten, damit es funktioniert?
Ich verwenden manche wsdl zum testen http://www.webservicex.net/AustralianPostCode.asmx?WSDL
Hielt ich immer diese Fehlermeldung
java.io.IOException: Server returned HTTP response code: 500 for URL: http://www.webservicex.net/AustralianPostCode.asmx?WSDL
Wenn jemand kann mir die richtige Richtung, wird sehr geschätzt.
Dies ist die eigentliche soap-Anfrage, die ich brauche, um
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://service.application.tvcc.dmv.ca.gov/">
<soapenv:Header/>
<soapenv:Body>
<ser:getNewCourseCompletion>
<arg0>
<userDto>
<password>********</password>
<userId>anyone@somecourt.com</userId>
</userDto>
</arg0>
</ser:getNewCourseCompletion>
</soapenv:Body>
</soapenv:Envelope>
Ich aktualisiert mit dem tatsächlichen soap-Anfrage, die ich brauche zu machen. Ich habe noch nie getan eine soap-Anforderung vor, so dass ich versuchen, die Forschung und finden Sie etwas, das funktionieren kann. Ich versuche SOAPFactory soapFactory = SOAPFactory.newInstance(); auch, aber nicht für mich arbeiten. Ich weiß, es ist etwas, was ich nicht richtig, aber ich weiß nicht, wie. Danke
auch können Sie die SOAPui-Programm, um test, um Ihre WS (ist sehr nützlich für die Entwicklung)
InformationsquelleAutor Dolly Chan | 2012-07-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
WSDL ist eine Art Menü, zu definieren, welche SOAP-Anforderungen, wird es akzeptieren, und was wird es Ihnen wieder zurück. Sie müssen nicht tatsächlich senden Sie ein WSDL-Dokument zu dieser URL als Anfrage. Wenn Sie wollen Tauchen Sie ein in genau das, was XML-Daten senden soll, ich würde empfehlen, das herunterladen von soapUI:
http://sourceforge.net/projects/soapui/files/soapui/4.5.1/
Erstellen eines neuen Projekts und hinzufügen der link, den Sie zur Verfügung gestellt:
http://www.webservicex.net/AustralianPostCode.asmx?WSDL
als die ursprüngliche WSDL (Sie sehen die box in SoapUI). Es generiert dann die Arten von Anfragen, die Sie senden können, dass web-service, und lassen Sie Sie füllen Sie die Felder aus und schicken Sie es zusammen.
Wenn Sie wollen, zu tun, die aus Java-code haben, müssen Sie wählen Sie eine web-service-Plattform wie JAX-WS und generieren des Java-Codes bildet die Anfragen und sendet Sie zusammen. Werfen Sie einen Blick auf einige der JAX-WS-tutorials.
Das ist eine gute Ressource für diese Art von Frage. Poster braucht nur zu Folgen, die "Entwicklung des WebService-Client" Teil.
InformationsquelleAutor davidfmatheson
Ich weiß, es ist ein wenig spät, aber ich werfe eine Antwort gibt, sowieso.
Was Sie tun möchten, ist die automatische generieren von Java-code für diese web-service. Ich werde zeigen, mit dem WSDL-Sie verwiesen: http://www.webservicex.net/AustralianPostCode.asmx?WSDL
In Java-das Werkzeug zur automatischen Generierung von code ist
wsimport
. Sie wollen so etwas wie dieses:Dieser wird den code, den Sie möchten in dem angegebenen Paket (hier
com.company.whateveruwant
).Von dort aus alles, was Sie tun müssen, ist einfach aufrufen der SOAP-Methode, wie eine normale Java-Bibliothek:
Dieser druckt:
InformationsquelleAutor Cuga
SEIFE ist ein sehr altes und sehr schwer-Protokoll (es gibt viele blogs, die Ihnen sagen, warum Seife ist ein komplettes Chaos), auch, wenn Sie können, versuchen Sie REST (wie RESTeasy-framework). Aber wenn Sie haben, um Seife zu benutzen, können Sie die ACHSE (ich benutze AXIS1, denn es gibt viele ältere apps, die Nutzung der Bibliothek), ich habe keine Erfahrung mit AXIS2, hier also der Hinweis ist um Kunden:
1), müssen Sie Ihre classpath-Achse Bibliothek (unter linux, wie im folgenden Beispiel):
2) Dann können Sie das client - /server wie:
--Server-side machen, dass die Achse erstellen der wsdl-Dateien für die Bereitstellung und Implementierung der server-Schicht, wenn Sie möchten, erstellen Sie einen client, entfernen Sie es.
3) Sie haben Jetzt einen Ordner wie com/example/server/.java
4) In der Impl-Datei (wie ExampleImpl.java) Sie haben die Methoden, die Sie haben zu impl zu tun, einige mit der WS (in der server-Seite).
5) Wenn Sie wollen, zu konsumieren, WS Sie zu tun haben, einige wie:
Gut, es gibt viele Dokumentation in der axis-Website:
http://axis.apache.org/axis/java/index.html
Grüße,
gut, axis1 funktionieren für uns, das soap-Protokoll nicht jedes update seit 10 Jahren. Wenn Sie können wählen Sie ein anderes Protokoll sage ich, dass RUHE ist das beste, für SEIFE axis1 oder axis2 funktioniert (aber ich weiß nicht, wie es mit AXIS2) 🙂
InformationsquelleAutor Enrique San Martín