Apache Axis
Apache Axis
|
|
---|---|
|
|
Basic data
|
|
developer | Apache Software Foundation |
Current version | Axis: 1.4 April 22, 2006 Axis2: 1.7.9 |
operating system | cross-platform |
programming language | C ++ |
category | Web service |
License | Apache license 2.0 |
axis.apache.org/axis axis.apache.org/axis2 |
Apache Axis ( A pache e X tensible I nteraction S ystem ) is a SOAP storage engine to construct it based web services and clients . There are implementations in C ++ and Java .
Apache Axis is a new development and successor to Apache SOAP, which is based on the IBM SOAP framework . The aim of this new development was to achieve higher speed, flexibility, component orientation, abstraction of the transport framework and the support of WSDL .
AXIS achieves the higher speed by using the SAX parser, while Apache SOAP, in contrast, is based on a slower DOM parser. Like all other current web service frameworks , Axis2 uses StAX , which has a further speed advantage over SAX.
operation area
Axis is often operated as a Java servlet within a servlet container (for example Apache Tomcat ) that offers web services for Java classes. The JAVA2WSDL and WSDL2JAVA tools support the developer in automatically generating a robust interface in Java without having to deal directly with the functionality of SOAP.
For simple applications, Axis offers that Java applications can be made available directly as JWS (Java Web Services). From this, Axis automatically generates a usable web service including a WSDL description, which can be read out over the network in order to develop a corresponding client.
Supported standards
Axis supports the standards SOAP 1.1, 1.2, MTOM (only Axis2) and WSDL 1.1 of the W3C . SAAJ 1.1 (SOAP with Attachments API for Java) from Sun Microsystems is also supported.
It also supports the W3C specifications WS-Reliable Messaging , WS-Security , WS-AtomicTransaction , WS-Addressing , WS-Policy and WS-MetadataExchange.
Deployment
Web services can be integrated into Axis via WSDD files (XML documents) using the admin servlet. This is why deploy.wsdd , undeploy.wsdd and / or server-config.wsdd files are often used for this purpose .
Example ( Tomcat , JBoss ) of a server-config.wsdd that installs a web service "Hello" with a suitable WSDL under Apache-Axis:
<?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>
Development environment
Eclipse can be used with the Lomboz plug-in to develop AXIS web services and clients . As of version 6.1, Netbeans also includes the ability to generate Axis2 web services and clients.
Apache Axis2
The next generation of Apache Axis has been available since February 2005 with Apache Axis2 . It is a completely new development that surpasses the classic Axis in terms of speed, flexibility and user-friendliness. There are implementations in C and Java.
AXIOM
Axis2 uses its own object model called AXIOM (Axis Object Model) . It is based on the Streaming API for XML and is therefore much more memory-efficient than DOM , for example , since child elements are only processed when required.
Data binding
With data binding it is possible to use XML content in a programming language as objects. Axis2 offers the Axis2 Databinding Framework (ADB) for this . However, other technologies such as XMLBeans , JAXB and JiBX are also supported.
Deployment
Axis2 also differs from Axis 1.x in that it is easier to deploy . The mechanism is similar to the archive-based Java EE deployment. The class files and descriptors of the service are combined in a JAR archive and stored in a specific folder - the repository . The service archive must have a certain structure and have the ending .aar.
In order to achieve high availability, Axis2 has two important functions:
- Hot deployment
- A web service can be integrated into the system at runtime without having to restart the server.
- Hot update
- Changes to the web service can be made without having to stop the system beforehand. This feature is particularly useful in a development environment.
See also
- Apache CXF - another current web service framework from Apache
- Web Services Interoperability Technology (WSIT) - current web service framework collection from Sun Microsystems
- Service Oriented Architecture (SOA)
literature
- Thilo Frotscher, Marc Teufel, Dapeng Wang: Java Web Services with Apache Axis2. ISBN 978-3-935042-81-9 .
- Deepal Jayasinghe: Quickstart Apache Axis2. ISBN 978-1-84719-286-8 .
Web links
Individual evidence
- ↑ Releases. In: apache.org/axis2. Retrieved February 8, 2019 .
- ↑ SW Eran Chinthaka: Introducing AXIOM: The Axis Object Model ( Memento from September 13, 2007 in the Internet Archive )
- ↑ Axis2 Databinding Framework
- ↑ Deepal Jayasinghe: The Axis2 deployment model, Part 1: Six ways the Axis2 deployment model is more user friendly