Welcome to Apache Axis2

Apache Axis2 is an implementation of the Simple Object Access Protocol (SOAP) Recommendation from the W3C. Axis2 can be used to provide and consume Web Services.

From the W3C recommendation:

"SOAP is a lightweight protocol for exchange of information in a decentralized, distributed environment. It is an XML based protocol that consists of three parts: an envelope that defines a framework for describing what is in a message and how to process it, a set of encoding rules for expressing instances of application-defined datatypes, and a convention for representing remote procedure calls and responses."

Apache Axis2 is an effort to re-implement both Axis/Java and Axis/C++ on a new architecture. Building upon the "handler chain" model developed in Axis1, Axis2 introduces a more flexible pipeline architecture which leads itself to greater modularity and extensibility. This extensibility will allow Axis2 to act as a foundation for a growing constellation of associated Web Services protocols including:

Latest Release

11 January 2005 - Apache Axis2 Version 0.94 Released! (Download 0.94)

This release includes the following features:

Axis2 Complete Features List

  1. AXIOM, an XML object model working on StAX (Streaming API for XML) parsing optimized for SOAP 1.1/1.2 Messages. This has complete XML infoset support.
  2. Support for One-Way Messaging (In-Only) and Request Response Messaging (In-Out)
  3. Module Architecture, mechanism to extend the SOAP Processing Model
  4. Module version support , can have multiple versions of the same module and use them depending on the requirement.
  5. Content hierarchy
  6. Archive based deployment Model and Directory based deployment model
  7. JWS like deployment (making Java class into Web service)
  8. WSDL Code Generation Tool for Stub and skeletons
  9. WS-Addressing, both the submission (2004/08) and final (2005/08) versions
  10. WSS4J module for security
  11. Improved and user friendly Client API
  12. WSDL2Java
  13. REST (REpresentational State Transfer) Support
  14. Transports supports: HTTP, SMTP, TCP, JMS
  15. Raw XML providers
  16. Support for MTOM/ MIME/ SwA
  17. SAAJ implementation
  18. DOOM - New Feature
  19. Pack/Unpack capability for the generated code- New Feature
  20. Axis Data Binding - ADB (Framework and Schema Compiler)
  21. Numerous bug fixes since last release

Axis2 Experimental Features List

  1. Sessions scoping for Application, SOAP, Transport and Request levels
  2. Server side Web Service Policy support
  3. ?wsdl and ?xsd support
  4. Java2WSDL
  5. Generating ServiceClient for a given WSDL and invoke the corresponding service using generated client.

Major Changes Since Last Release

  1. Fixing of memory leaks
  2. Client API changes , Introducing ServiceClient instead of MEPClient, InOnlyMEPClient, InOutMEPClient, Call. (Please note that the above classes will be deprecated in this release.)
  3. Module versioning support , can have multiple versions of the same module and use them depending on the requirement.
  4. Code generator improved to process multi-port WSDL's properly
  5. Packing and unpacking options for the code generated classes

Tools Included In This Release

  1. Axis2 Web Application (Web App)
  2. WSDL2WS- Eclipse plugin/ Command line version/ IntelliJ IDEA plugin
  3. Service Archive Wizard- Eclipse plugin/ IntelliJ IDEA plugin

What's Still To Do?

See list of what we think needs to be done, and consider helping out if you're interested & able!

  1. JAX-RPC 1.1 and/or JAX-WS compliance
  2. SOAP Encoding
  3. Binary serialization and de-serialization support
  4. Management Interface for Axis2
  5. Implementation of other Transports.
  6. Resource framework implementation (WS-RF) and Enterprise web services such as JSR 109 support
  7. Completion of interop tests

Axis2 Background and Motivation

Axis1 was built under the assumption that other protocols such as WS-ReliableMessaging would be integrated into Axis1's handler chain. Axis1 had the concept of a MessageContext and a chain of transport, service, and global message handlers, but Axis1 lacked a clear extension architecture to enable clean composition of such layers. One of the key motivations for Axis2 is to provide a clean and simple environment for implementations of associated WS standards such as Apache Sandesha and Apache WSS4J. Implementations of associated standards should be able to easily interface with the base SOAP Message handling system. In summary, Axis2 has a more modular and flexible message handling pipeline. It focuses on the details of message handling and provides clear hooks for implementations of associated Web Services standards and protocols. This evolution will allow Axis to be a foundational technology for next generation Web Services.

Axis2 introduces a representation for SOAP messages called AXIOM (AXIs Object Model). AXIOM consists of two parts: a complete XML Infoset representation and a SOAP Infoset representation. The XML Infoset representation provides a JDOM-esque API built on top a deferred model via a StAX-based (Streaming API for XML) pull parsing API. A key feature of AXIOM is that it allows one to stop building the XML tree and just access the pull stream directly, enabling both maximum flexibility and maximum performance. This approach allows Axis2 to support multiple levels of abstraction for consuming and offering Web services using plain AXIOM, or using generated code and statically data-bound data types and so on. Developers with demanding performance requirements will be able to use AXIOM to create highly scalable Web Services.

A third shift in Axis 2 is the de-emphasis of RPC-oriented Web Services and a shift towards more document-oriented message style asynchronous service interactions. With Axis2 clients can interact with servers in a number of ways, and the client API provides both a blocking and non-blocking API. At the time of Axis1's design, RPC-style, synchronous, request-response interactions were the order of the day for Web services. Today service interactions are much more message-oriented and exploit many different message exchange patterns. The Axis2 engine architecture is careful not to build in any assumptions of request-response patterns to ensure that it can be used easily to support arbitrary message exchange patterns. Don't worry, you'll still be able to use Axis2 like you used Axis1. One just have a richer set of options for client-server interaction.

Archived News

02 December 2005 - Apache Axis2 Version 0.93 Released! ( Download 0.93)

Axis2 is becoming more and more stable. Download it!. This 0.93 release contains the following additional features:

Experimental features list
  1. DOOM - DOM implementation over OM
  2. Java2WSDL
  3. RPC Support
Major changes since last release
  1. Refactored org.apache.axis2.clientapi to org.apache.axis2.client
  2. Introduction of Options to configure clients
  3. Renaming of descriptors. OperationDescription -> AxisOperation, ServiceDescription -> AxisService, ServiceGroupDescription -> AxisServiceGroup
We are getting closer to a 1.0 release, the remaining tasks to be completed before a 1.0 release include: SOAP 1.1 and 1.2 validation, Our own data binding implementation, WSDL Generation.

26 September 2005 - Apache Axis2 Version 0.92 Released! (Download 0.92)

Axis2 is becoming more and more stable. Download it! This 0.92 release is a glimpse of 1.0 that should be coming soon. This 0.92 release contains the following additional features:

The release includes following tools

We are getting closer to a 1.0 release, the remaining tasks to be completed before a 1.0 release include: SOAP 1.1 and 1.2 validation, Our own data binding implementation, WSDL Generation.

12 August 2005 - Apache Axis2 Version 0.91 Released! (Download 0.91)

Axis2 is becoming more and more stable. Download it! This 0.91 release is a glimpse of 1.0 that should be coming soon. This 0.91 release contains the following additional features:

02 July 2005 - Apache Axis2 Version 0.9 Released! (Download 0.9)

Axis2 is taking shape. Download it! This 0.9 release is a glimpse of 1.0 that should be coming soon. This 0.9 release contains the following additional features:

07 June 2005 - Apache Axis2 Milestone 2 (M2) Released

Apache Axis2 is starting to take shape, features implemented in this second milestone release are:

This release also includes following tools:

24 February 2005 - Apache Axis2 Milestone 1 (M1) Released

This first milestone release of Axis2 includes the following features: