Apache Axis2

Apache Axis2
Apache Axis
Bild:ApacheAxis.jpg

Bild:axis2.jpg

Entwickler: Apache Software Foundation
Aktuelle Version: Apache Axis: 1.4
Apache Axis2: 1.4
(Apache Axis: 22. April 2006
Apache Axis2: 02. Mai 2008)
Betriebssystem: Java VM
Kategorie: Web Service
Lizenz: Apache-Lizenz 2.0
http://ws.apache.org/axis/
http://ws.apache.org/axis2/

Apache Axis (Apache eXtensible Interaction System) ist eine SOAP-Engine zur Konstruktion von darauf basierenden Web Services und Client-Anwendungen. 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.

Inhaltsverzeichnis

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.

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:

<?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.[1]

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.[2]

Deployment

Struktur eines Service-Archivs

Axis2 unterscheidet sich von Axis 1.x des weiteren durch ein einfacheres Deployment. Der Mechanismus ähnelt dem archivbasierten J2EE-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 Web Service kann aufgestellt werden, während das System läuft.
Hot update 
Es können Änderungen am Web Service vorgenommen werden, ohne das System vorher anzuhalten. Diese Funktion erweist sich in einer Entwicklungsumgebung als besonders nützlich.[3]

Siehe auch

Weblinks

Quellen

  1. S. W. Eran Chinthaka: Introducing AXIOM: The Axis Object Model
  2. Axis2 Databinding Framework
  3. Deepal Jayasinghe: The Axis2 Deployment model, Part 1: Six ways the Axis2 deployment model is more user friendly

Wikimedia Foundation.

Игры ⚽ Поможем написать курсовую

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Apache Axis2 — Infobox Software name = Apache Axis2 caption = developer = Apache Software Foundation latest release version = 1.4.1 latest release date = release date|2008|08|24 operating system = Cross platform programming language = Java and C genre = Web… …   Wikipedia

  • Axis2 — Apache Axis Entwickler: Apache Software Foundation Ak …   Deutsch Wikipedia

  • Apache Axis — Entwickler Apache Software Foundation Aktuelle Version Apache Axis: 1.4 Apache Axis2: 1.5.3 (Apache Axis: 22. April 200 …   Deutsch Wikipedia

  • Apache Axis — Infobox Software name = Apache Axis caption = developer = Apache Software Foundation latest release version = 1.4 latest release date = release date|2006|04|22 operating system = Cross platform programming language = Java and a C++ genre = Web… …   Wikipedia

  • Apache Axis — Pour les articles homonymes, voir Axis. Axis est un projet de l Apache Software Foundation. C est un package Java libre qui fournit : un environnement pouvant soit fonctionner comme un serveur SOAP/Rest[1] indépendant soit comme un plug in… …   Wikipédia en Français

  • Apache Muse — Dieser Artikel wurde aufgrund von inhaltlichen Mängeln auf der Qualitätssicherungsseite der Redaktion Informatik eingetragen. Dies geschieht, um die Qualität der Artikel aus dem Themengebiet Informatik auf ein akzeptables Niveau zu bringen. Hilf… …   Deutsch Wikipedia

  • Apache Rampart module — Apache Rampart is an implementation of the WS Security standard for the Axis2 Web services engine by the Apache Software Foundation. It supplies security features to web services.http://ws.apache.org/axis2/modules/rampart/1 0/security… …   Wikipedia

  • Apache Commons — проект фонда Apache Software Foundation (далее ASF), имеющий своей целью разработку и поддержку открытого программного обеспечения повторного использования на языке Java, т.е. библиотек Java. В более узком смысле Apache Commons это «большая… …   Википедия

  • Apache — HTTP Server Логотип Apache Тип Веб сервер Разработчик Apache …   Википедия

  • Apache Harmony — Тип Java Virtual Machine Разработчик Apache Software Foundation Написана на C++ и Java Операционная система Windows и Linux Последняя версия 6.0 M3 (2 сентября …   Википедия

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”