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 …- JDK 1.5 (JRE ist nicht genug denn wir brauchen einen Compiler)
- Eclipse 3.3 for Java EE Developers oder alternativ Eclipse 3.3 for Java Developers + WST + JST
- Axis2
Axis2 Setup
- Downloaden und entpacken von "Standard Binary Distribution" von der Axis2 Projektseite
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 starten und ein neues "Java Projekt" anlegen
- Projektname: pojo
- "Create Project from existing Source"
- Directory: axis2-1.4/samples/pojo
- Window - Show View - Ant
- Add Buildfiles: pojo/build.xml
- generate.service
cd bin
./axis2server.shNun 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.
- in Eclipse ein neues "Java Projekt" anlegen
- im Projekt: New -> Other … -> Web Services -> Web Service Client
- Service Definition: http://localhost:8080/axis2/services/AddressBookService?wsdl
- Next - Finish
- neue "Main" Java-Klasse anlegen ...
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.
- Run - Run as … - Java Application
Found: Club3k
Programming : Read more : comments (0) : 27.05.2008 09:03
Comments
no comments