Webservices mit Java und Apache Axis2

Sprachen  –  Kommentare

Axis2, hervorgegangen aus Apache Axis, ist ein Java-Framework zur Entwicklung von Webservice-Anwendungen auf Basis von SOAP (Simple Object Access Protocol) oder REST (Representational State Transfer). Es besteht aus mehreren Komponenten und lässt sich durch Module beliebig erweitern. Axis2 kann in unterschiedlichen Formen zum Einsatz kommen. Zunächst gibt es eine eigene Distribution als Webanwendung. Ist sie in einen Servlet-Container (zum Beispiel Apache Tomcat) eingespielt, können eigene Webservices installiert und verwendet werden. Diese Distribution bringt eine gegenüber Axis 1.x deutlich erweiterte Administrationsoberfläche mit. Außerdem kann man Axis2 in externe Webanwendungen integrieren, sodass sie in der Lage sind, Webservices aufzurufen oder anzubieten. Schließlich ist das Framework als eigener Prozess zu starten und stellt dann Webservices per HTTP oder TCP bereit.

Auf der Serverseite von Axis2 durchläuft ein Message Context (MC) eine Kette von Handlern, die ihn nach Bedarf verändern (Abb. 1).

Das Framework ist gleichermaßen auf dem Client und dem Server einsetzbar. Das bedeutet, dass auf beiden Seiten die Verarbeitung weitgehend einheitlich stattfindet. Beim Aufruf von Webservice-Operationen durchlaufen die SOAP-Nachrichten sowohl auf dem Client als auch auf dem Server bestimmte Stationen („Handler“, siehe Abbildung 1).

Auf dem Client erzeugt der Aufruf der gewünschten Operation durch die Axis2-API zunächst einen SOAP-Request. Auf ihm aufbauend generiert Axis ein Objekt, den Message Context. Er durchläuft eine Kette von Handlern, die durch ihn Zugriff auf sämtliche Daten des Webservice-Aufrufs erhalten.