Erste Erfahrungen mit WebServices

Wenn zwei Systeme mit einander kommunizieren sollen hört man seit einigen Jahren immer wieder von Web Services und jetzt war es auch bei mir so weit, dass ich mich näher damit beschäftigen durfte.

Das Thema wird in unzähligen Zeitschriften und Firmen gehyped aber umfasst so viele Spezifikationen, Protokollen, Frameworks und Eclipse Plugins, dass es schwer fällt einen Überblick zu gewinnen. Diesen Überblick müsst ihr euch leider selbst verschaffen denn ich möchte hier nur auf ein Quick-Start Beispiel eingehen.

Es entsteht sehr oft der Eindruck, dass man sofort einen Tomcat oder JBoss Server braucht um damit herumspielen zu können und das ist für viele ein großes Hindernis. Glücklicherweise ist es nicht notwendig denn Axis2 hat einen standalone Server integriert der vorerst völlig ausreicht.

Vorbereitungen

Gut dann legen wir mal los. Wir brauchen dazu folgendes … Ich hab es auf unterschiedlichen Rechnern mit Eclipse 3.2 versucht und glaubt mir es ist den Aufwand nicht wert!

Axis2 Setup

Axis2 POJO AddressBook

Da wir hier bei keinem Kindergeburtstag sind nehmen wir zumindest eines der mitgelieferten Beispiele von Axis2 für unsere Spielchen. Das müssen wir dazu aber erst über ant kompilieren und dann Axis2 vorwerfen.

(Eclipse meint dann, dass er libraries nicht findet und zeigt Syntax Errors an - kann man ignorieren denn das ant buildscript findet sie) Dann sollte das ant buildscript durchlaufen und mit "BUILD SUCCESSFUL" anzeigen, dass es erfolgreich war. Nun können wir unseren Axis2 Server in einer Shell/Eingabeaufforderung starten … (für Windows ist es axis2server.bat) cd bin ./axis2server.sh

Nun können wir im Browser kontrollieren ob bisher alles geklappt hat wie es soll indem wir "http://localhost:8080/axis2/services/" aufrufen. Dort sollten wir 2 Services "Version" und "AddressBookService" vorfinden.

Writing the Client

Nachdem wir jetzt unseren Webservice laufen haben beginnt der interessante Teil. Der AddressBookService sollte 2 Methoden bereitstellen und zwar "addEntry" und "findEntry". Aus diesen Informationen wird Eclipse gleich unsere Java Klassen anlegen die genau diese Methoden implementieren.

Eclipse hat jetzt alle notwendigen Klassen für unser generiert die wir für einen Zugriff auf die WebService Schnittstelle brauchen. import sample.addressbook.entry.xsd.Entry; import sample.addressbook.service.AddressBookServiceLocator; import sample.addressbook.service.AddressBookServicePortType;

public class Main {

public static void main(String[] args) {

try { AddressBookServiceLocator locator = new AddressBookServiceLocator(); AddressBookServicePortType book = locator.getAddressBookServiceHttpSoap12Endpoint();

book.addEntry(new Entry("City", "Club3k", "9000", "Austria", "Fakestreet 69"));

Entry entry = book.findEntry("Club3k");

System.out.println("Found: " + entry.getName()); } catch (Exception e) { e.printStackTrace(); } } }

So mehr ist es nicht. Das ist alles was man selbst noch machen muss um den Webservice nutzen zu können. Bei den Methodenaufrufen addEntry und findEntry wird dabei intern ein SOAP Request auf die Webservice Schnittstelle gemacht und das Resultat sehen wir gleich.

Der Output wenn alles richtig gelaufen ist:

Found: Club3k

Programming : Read more : comments (0) : 27.05.2008 09:03

Comments

no comments

New Comment


(optional)