wake-up-neo.com

Java Webservice Client (Bester Weg)

Ich habe eine WSDL eines Drittanbieters und muss Code in Java) schreiben, damit ein Webdienst-Client die Operationen in der WSDL eines Drittanbieters aufruft. Im Moment habe ich den Client-Stub mit WSDL2Java generiert Tool von Axis und verwendete die XMLbeans für die Datenbindung.

  1. Was ist der beste Ansatz, um diese Java zu tun?
  2. Ich habe über die SAAJ gelesen. Sieht es so aus, als ob das eine genauere Herangehensweise wäre?
  3. Gibt es eine andere Möglichkeit als das WSDL2Java-Tool, um den Code zu generieren. Vielleicht wsimport in einer anderen Option. Was sind die Vor- und Nachteile?
  4. Kann jemand die Links für einige gute Tutorials zu diesen Themen senden?
  5. Welche Optionen müssen wir verwenden, um den Code mit WSDL2Java zu generieren?

Ich habe anfangs einige der grundlegenden Dinge benutzt. Jetzt habe ich diese Möglichkeiten

C:\axis2-1.5.1\bin>wsdl2Java -uri  mywsdlurl  -o client -p somepackage -d xmlbeans -s -t -ssi
81
Java Guy

Was ist der beste Ansatz, um diese Java zu tun?

Ich persönlich würde [~ # ~] nicht [~ # ~] Axis 2 verwenden, auch nicht für die clientseitige Entwicklung. Deshalb halte ich mich davon fern:

  1. Ich mag seine Architektur nicht und hasse sein kontraproduktives Bereitstellungsmodell.
  2. Ich finde es ein Projekt von geringer Qualität.
  3. Ich mag seine Leistungen nicht (siehe dieser Benchmark gegen JAX-WS RI ).
  4. Es ist immer ein Albtraum, Abhängigkeiten aufzubauen (ich benutze Maven und ich muss immer mit der Unmenge von Abhängigkeiten kämpfen) (siehe # 2)
  5. Axis hat viel gelutscht und Axis2 ist nicht besser. Nein, dies ist keine persönliche Meinung, es besteht ein Konsens.
  6. Ich habe einmal gelitten, nie wieder.

Der einzige Grund, warum Axis noch verfügbar ist, ist IMO, da es seit Ewigkeiten in Eclipse verwendet wird. Gott sei Dank wurde dies in Eclipse Helios behoben und ich hoffe, dass Axis2 endgültig stirbt. Es gibt einfach viel bessere Stapel.

Ich habe über die SAAJ gelesen. Sieht es so aus, als ob das eine genauere Herangehensweise wäre?

Um was zu tun?

Gibt es eine andere Möglichkeit als das WSDL2Java-Tool, um den Code zu generieren. Vielleicht wsimport in einer anderen Option. Was sind die Vor- und Nachteile?

Ja! Bevorzugen Sie einen JAX-WS-Stack wie CXF oder JAX-WS RI (Sie könnten auch über Metro lesen, Metro = JAX-WS RI + WSIT ), sie sind nur eleganter, einfacher, einfacher zu bedienen. In Ihrem Fall würde ich nur JAX-WS RI verwenden, das in Java 6 und damit wsimport enthalten ist.

Kann jemand die Links für einige gute Tutorials zu diesen Themen senden?

Das ist ein weiterer Profi, es gibt viele (gute) Tutorials für JAX-WS, siehe zum Beispiel:

Welche Optionen müssen wir verwenden, um den Code mit WSDL2Java zu generieren?

Keine Optionen, benutze wsimport :)

Siehe auch

Verwandte Fragen

160
Pascal Thivent

Ich hatte gute Erfolge mit Spring WS für das Client-Ende einer Webdienst-App - siehe http://static.springsource.org/spring-ws/sites/1.5/reference/html/client.html =

Mein Projekt verwendet eine Kombination aus:

  • XMLBeans (generiert aus einem einfachen Maven-Job mit dem xmlbeans-maven-Plugin)

  • Spring WS - Mit marshalSendAndReceive () wird der Code zum Senden und Empfangen auf eine Zeile reduziert

  • some Dozer - Zuordnung der komplexen XMLBeans zu einfachen Beans für die Client-GUI

8
Steve

Hier finden Sie einige Ressourcen zur Entwicklung von Web-Services-Clients mit Apache axis2.

http://today.Java.net/pub/a/today/2006/12/13/invoking-web-services-using-Apache-axis2.html

Die folgenden Beiträge enthalten gute Erklärungen zur Entwicklung von Webdiensten mit Apache axis2.

http://www.ibm.com/developerworks/opensource/library/ws-webaxis1/

http://wso2.org/library/136

1
aravindaM

Einige Ideen in der folgenden Antwort:

Schritte zum Erstellen eines Webdienstes mit Axis2 - Der Client-Code

Gibt ein Beispiel für einen Groovy-Client, der die aus der WSDL generierten ADB-Klassen aufruft.

Es gibt viele Web-Service-Frameworks ...

0
Mark O'Connor