„Apache Axis“ – Versionsunterschied
[gesichtete Version] | [gesichtete Version] |
neue Version |
InternetArchiveBot hat 1 Archivlink(s) ergänzt und 0 Link(s) als defekt/tot markiert. #IABot (v1.6.5) |
||
Zeile 77: | Zeile 77: | ||
=== AXIOM === |
=== AXIOM === |
||
Axis2 verwendet ein eigenes Objektmodell namens ''AXIOM (Axis Object Model)''. Es basiert auf der [[Streaming API for XML]] und ist damit wesentlich speichereffizienter als etwa [[Document Object Model|DOM]], da Kindelemente nur bei Bedarf verarbeitet werden.<ref>S. W. Eran Chinthaka: |
Axis2 verwendet ein eigenes Objektmodell namens ''AXIOM (Axis Object Model)''. Es basiert auf der [[Streaming API for XML]] und ist damit wesentlich speichereffizienter als etwa [[Document Object Model|DOM]], da Kindelemente nur bei Bedarf verarbeitet werden.<ref>S. W. Eran Chinthaka: {{Webarchiv|text=''Introducing AXIOM: The Axis Object Model'' |url=http://today.java.net/pub/a/today/2005/05/10/axiom.html |wayback=20070913002624 |archiv-bot=2018-03-30 07:27:39 InternetArchiveBot }}</ref> |
||
=== Data binding === |
=== Data binding === |
Version vom 30. März 2018, 09:27 Uhr
Apache Axis
| |
---|---|
![]() | |
Basisdaten
| |
Entwickler | Apache Software Foundation |
Aktuelle Version | Axis: 1.4 Vorlage:Datum – die Form mit drei unbenannten Parametern oder anderen einzelnen Zeiteinheiten ist veraltet und wird nicht mehr unterstützt. Bitte gib das Datum einfach im Klartext an. Axis2: 1.7.7 |
Betriebssystem | plattformübergreifend |
Programmiersprache | C++ |
Kategorie | Webservice |
Lizenz | Apache-Lizenz 2.0 |
axis.apache.org/axis axis.apache.org/axis2 |
Apache Axis (Apache eXtensible Interaction System) ist eine SOAP-Engine zur Konstruktion von darauf basierenden Webservices und Clients. Es existieren Implementierungen 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, während Apache SOAP im Gegensatz dazu auf einem langsameren DOM-Parser aufbaute. Axis2 verwendet wie alle anderen aktuellen Webservice-Frameworks StAX, welches einen weiteren Geschwindigkeitsvorteil gegenüber SAX mit sich bringt.
Einsatzgebiet
Axis wird häufig als Java-Servlet innerhalb eines Servlet-Containers (beispielsweise Apache Tomcat) betrieben, der Webservices 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.
Unterstützte Standards
Axis unterstützt die Standards SOAP 1.1, 1.2, MTOM (nur Axis2) und WSDL 1.1 der W3C. Es wird auch SAAJ 1.1 (SOAP with Attachments API for Java) von Sun Microsystems unterstützt.
Darüber hinaus unterstützt es die W3C-Spezifikationen WS-Reliable Messaging, WS-Security, WS-AtomicTransaction, WS-Addressing, WS-Policy und WS-MetadataExchange.
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:
<?xml version="1.0" encoding="UTF-8"?>
<!-- Use this file to deploy some handlers/chains and services -->
<!-- Two ways to do this: -->
<!-- java org.apache.axis.client.AdminClient deploy.wsdd -->
<!-- after the axis server is running -->
<!-- or -->
<!-- java org.apache.axis.utils.Admin client|server deploy.wsdd -->
<!-- from the same directory that the Axis engine runs -->
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<!-- Services from HelloService WSDL service -->
<service name="Hello" provider="java:RPC" style="wrapped" use="literal">
<parameter name="wsdlTargetNamespace" value="http://xkurs.de"/>
<parameter name="wsdlServiceElement" value="HelloService"/>
<parameter name="schemaQualified" value="http://xkurs.de"/>
<parameter name="wsdlServicePort" value="Hello"/>
<parameter name="className" value="xde.kurs.Hello"/>
<parameter name="wsdlPortType" value="Hello"/>
<parameter name="typeMappingVersion" value="1.2"/>
<operation xmlns:operNS="http://xkurs.de"
xmlns:retNS="http://xkurs.de"
xmlns:rtns="http://www.w3.org/2001/XMLSchema"
name="sayHello"
qname="operNS:sayHello"
returnQName="retNS:sayHelloReturn"
returnType="rtns:string" soapAction="">
<parameter xmlns:pns="http://xkurs.de"
xmlns:tns="http://www.w3.org/2001/XMLSchema"
qname="pns:s" type="tns:string"/>
</operation>
<parameter name="allowedMethods" value="sayHello"/>
</service>
</deployment>
Entwicklungsumgebung
Zur Entwicklung von AXIS-Webservices und Clients kann Eclipse mit dem Lomboz-Plugin verwendet werden. Netbeans enthält ab Version 6.1 ebenfalls die Möglichkeit, Axis2-Webservices und Clients zu generieren.
Apache Axis2
Seit Februar 2005 steht mit Apache Axis2 die nächste Generation von Apache Axis zur Verfügung. Es handelt sich um eine vollständige Neuentwicklung, welche das klassische Axis bezüglich Geschwindigkeit, Flexibilität und Benutzerfreundlichkeit übertrifft. Es liegen Implementierungen in C und Java vor.
AXIOM
Axis2 verwendet ein eigenes Objektmodell namens AXIOM (Axis Object Model). Es basiert auf der Streaming API for XML und ist damit wesentlich speichereffizienter als etwa DOM, da Kindelemente nur bei Bedarf verarbeitet werden.[2]
Data binding
Durch data binding ist es möglich, XML-Inhalte in einer Programmiersprache als Objekte zu verwenden. Axis2 bietet hierfür das Axis2 Databinding Framework (ADB). Es werden aber auch andere Techniken wie XMLBeans, JAXB und JiBX unterstützt.[3]
Deployment

Axis2 unterscheidet sich von Axis 1.x des Weiteren durch ein einfacheres Deployment. Der Mechanismus ähnelt dem archivbasierten Java-EE-Deployment. Die Klassendateien und Deskriptoren des Services werden in einem JAR-Archiv zusammengefasst und in einem bestimmten Ordner – dem repository – abgelegt. Das Service-Archiv muss dabei eine bestimmte Struktur aufweisen und die Endung .aar tragen.
Um eine hohe Verfügbarkeit zu erreichen, bringt Axis2 zwei wichtige Funktionen mit:
- Hot deployment
- Ein Webservice kann zur Laufzeit in das System integriert werden, ohne dass der Server neugestartet werden muss.
- Hot update
- Es können Änderungen am Webservice vorgenommen werden, ohne das System vorher anzuhalten. Diese Funktion erweist sich in einer Entwicklungsumgebung als besonders nützlich.[4]
Siehe auch
- Apache CXF – weiteres aktuelles Webservice Framework von Apache
- Web Services Interoperability Technology (WSIT) – aktuelle Webservice Framework Sammlung von Sun Microsystems
- Serviceorientierte Architektur (SOA)
Literatur
- Thilo Frotscher, Marc Teufel, Dapeng Wang: Java Web Services mit Apache Axis2. ISBN 978-3-935042-81-9
- Deepal Jayasinghe: Quickstart Apache Axis2. ISBN 978-1-84719-286-8
Weblinks
Einzelnachweise
- ↑ Releases. In: apache.org/axis2. Abgerufen am 1. Dezember 2017 (englisch).
- ↑ S. W. Eran Chinthaka: Introducing AXIOM: The Axis Object Model ( des vom 13. September 2007 im Internet Archive) Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.
- ↑ Axis2 Databinding Framework
- ↑ Deepal Jayasinghe: The Axis2 Deployment model, Part 1: Six ways the Axis2 deployment model is more user friendly