Kapitel 8. WebServices nutzen

Um von Java aus auf WebServices zugreifen zu können, gibt es mehrere Möglichkeiten. Die einfachste ist ausgehend von einer WSDL-Datei einen Stub erzeugen zu lassen, der den WebService auf der Clientseite repräsentiert. Diesen Stub kann man dann genauso benutzen wie jede andere Java-Klasse. Dass dahinter ein WebService die Arbeit verrichtet merkt man gar nicht[4]. Das Axis-Framework liefert zu diesem Zweck ein Tool mit Namen WSDL2Java was solche Stubs generieren kann. Da das direkte Aufrufen doch eher umständlich ist, lassen wir das das Lomboz-Plugin erledigen:

Abbildung 8.1. Aufruf des WebService Wizards in Lomboz

Man kann entweder die WSDL-Datei vom Filesystem lesen, dann muss man sie zuvor mit dem Browser mit „Speichern unter ...“ gesichert haben. Alternativ kann man auch direkt eine URL eingeben: http://localhost:8080/axis/services/Version?wsdl

Abbildung 8.2. WebService Wizards in Lomboz

Wenn man zusätzlich „create Unittest“ ankreuzt, wird auch gleich ein Unittest erzeugt, der zeigt wie man die generierten Klassen einsetzt. Der TestCase verlangt allerdings junit.jar auf dem Classpath, so dass man die Projekteigenschaften entsprechend anpassen muss.

Anschließend finden sich im angegebenen Package vier neue Quellcode-Files, die zusammen den Client für den Zugriff auf den „Version“-WebService ermöglichen:

  • Version.java ist das Interface das den WebService beschreibt.
  • VersionService.java ist das Interface welches einen Stub liefert (die Factory).
  • VersionSoapBindingStub.java ist der Stub, der „Version“ implementiert.
  • VersionServiceLocator.java ist die Implementierung der Factory

Als weiteres fünftes File wird noch ein TestCase generiert, der den WebService aufruft. Um den TestCase auszuführen markiert man einfach die Datei VersionServiceTestCase.java und wählt Run / Run as ... / JUnit TestCase.

Fussnoten

[4] Stimmt nicht ganz, da durch den RemoteCall natürlich bestimmte Exceptions potentiell nicht zu vermeiden sind.