Apache Axis
Apache Axis (Apache eXtensible Interaction System) ist eine SOAP-Engine zur Konstruktion von darauf basierenden Web Services und Client-Anwendungen. Es existiert eine Implementierung in C++ und Java.Apache Axis ist eine Neuentwicklung und Nachfolger von Apache SOAP, das auf dem IBM-Framework IBM SOAP basierte. Ziel dieser Neuentwicklung war eine höhere Geschwindigkeit, Flexibilität, Komponentenorientierung, Abstraktion des Transportframeworks, sowie die Unterstützung von WSDL zu erreichen.
Die höhere Geschwindigkeit erreicht AXIS durch Verwendung des SAX-Parsers im Gegensatz zu Apache SOAP, das noch auf einem langsameren DOM-Parser aufbaute.
Einsatzgebiet
Axis wird häufig als Java-Servlet innerhalb eines Servlet-Containers (beispielsweise Apache Tomcat) betrieben, der Web Services für Java-Klassen anbietet. Mit den Tools JAVA2WSDL und WSDL2JAVA wird der Entwickler dabei unterstützt, automatisch eine robuste Schnittstelle in Java zu erzeugen, ohne sich direkt mit der Funktionsweise von SOAP befassen zu müssen.
Für einfache Anwendungen bietet Axis an, dass Java Applikationen direkt als JWS (Java Webservices) bereitgestellt werden können. Daraus generiert Axis automatisch einen verwendbaren Webservice inklusive WSDL Beschreibung, die über das Netz ausgelesen werden kann, um hierfür einen entsprechenden Client zu entwickeln.
Durch den Einsatz von WSDL ist es auch möglich, eine .NET-Umgebung mit einer auf Java basierenden Axis-Umgebung zu verbinden.
Unterstützte Standards
Axis unterstützt die Standards SOAP 1.1, 1.2 und WSDL 1.1 der W3C. Es wird auch SAAJ 1.1 (SOAP with Attachments API for Java) von Sun Microsystems unterstützt.
Deployment
Webservices können über WSDD-Dateien (XML-Dokumente) über das Admin-Servlet in Axis eingebunden werden. Häufig gibt es hierfür deshalb ?deploy.wsdd?,?undeploy.wsdd? und/oder server-config.wsdd Dateien.
Beispiel (Tomcat, JBoss) einer server-config.wsdd, die einen Webservice "Hello"
mit passender WSDL unter Apache-Axis installiert:
xmlns:rtns="http://www.w3.org/2001/XMLSchema"
name="sayHello"
qname="operNS:sayHello"
returnQName="retNS:sayHelloReturn"
returnType="rtns:string" soapAction="">
qname="pns:s" type="tns:string"/>
Entwicklungsumgebung
Zur Entwicklung von AXIS-Webservices und Clients kann Lomboz-Plugin verwendet werden.
Apache Axis2
Mit Apache Axis2 steht bereits der Nachfolger des klassischen Apache Axis in den Startlöchern. Es entwickelt ein komplett anderes Entwicklerteam. Am 13. November 2006 ist Version 1.1 erschienen. Mit Axis2 geht ein völlig neues Deployment-Verfahren auf Basis von Archiven (.aar) einher und ein deutlicher Performanceschub durch Verwendung von StAX.
Weblinks
• Homepage von Apache AXIS
• SAAJ von Sun
• Lomboz-Plugin für Eclipse
• Homepage von Apache Axis2

