<!--
  ~ Licensed to the Apache Software Foundation (ASF) under one
  ~ or more contributor license agreements. See the NOTICE file
  ~ distributed with this work for additional information
  ~ regarding copyright ownership. The ASF licenses this file
  ~ to you under the Apache License, Version 2.0 (the
  ~ "License"); you may not use this file except in compliance
  ~ with the License. You may obtain a copy of the License at
  ~
  ~ http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing,
  ~ software distributed under the License is distributed on an
  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  ~ KIND, either express or implied. See the License for the
  ~ specific language governing permissions and limitations
  ~ under the License.
  -->
<document xmlns="http://maven.apache.org/XDOC/2.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd">
    <properties>
        <title>Apache Axis2/Java - Next Generation Web Services</title>
    </properties>
    <body>
<h1>Welcome to Apache Axis2/Java</h1>
<p>Apache Axis2&#x2122; is a Web Services / SOAP / WSDL engine, the successor to the
widely used <a href=
"http://ws.apache.org/axis/">Apache Axis</a> SOAP stack.
There are two implementations
of the Apache Axis2 Web services engine - Apache Axis2/Java and
Apache Axis2/C</p>
<p>While you will find all the information on Apache Axis2/Java
here, you can visit the <a href=
"http://axis.apache.org/axis2/c/"><strong>Apache Axis2/C</strong></a>
Web site for Axis2/C implementation information.</p>
<p>Apache Axis2, Axis2, Apache, the Apache feather logo, and the Apache Axis2 project logo are trademarks of The Apache Software Foundation.</p>
<h3>December 19, 2010 - Apache Axis2/Java Version 1.5.4 Released!</h3>
<p>1.5.4 is a maintenance release that contains fixes for the following issues:</p>
<ul>
<li><a href="https://issues.apache.org:443/jira/browse/AXIS2-3784">AXIS2-3784</a>: WSDL port address is not correctly generated for machines having multiple network interfaces</li>
<li><a href="https://issues.apache.org:443/jira/browse/AXIS2-3793">AXIS2-3793</a>: move image to the correct place</li>
<li><a href="https://issues.apache.org:443/jira/browse/AXIS2-3851">AXIS2-3851</a>: adb-codegen no longer accepts schemas without targetNamespace</li>
<li><a href="https://issues.apache.org:443/jira/browse/AXIS2-4261">AXIS2-4261</a>: Enable axis2server.sh to start SimpleAxis2Server in remote debug mode</li>
<li><a href="https://issues.apache.org:443/jira/browse/AXIS2-4586">AXIS2-4586</a>: JiBX Client Stub not cleaning up HTTP connections after each operation</li>
<li><a href="https://issues.apache.org:443/jira/browse/AXIS2-4642">AXIS2-4642</a>: ?wsdl query calls out.close() twice, confusing at least some Tomcat connectors</li>
<li><a href="https://issues.apache.org:443/jira/browse/AXIS2-4674">AXIS2-4674</a>: Unable to get WSDL2 doc for services on WebSphere 7.0 and Axis2 1.5.1</li>
<li><a href="https://issues.apache.org:443/jira/browse/AXIS2-4819">AXIS2-4819</a>: Race condition in WSDLDataLocator</li>
<li><a href="https://issues.apache.org:443/jira/browse/AXIS2-4827">AXIS2-4827</a>: ADB class org.apache.axis2.databinding.types.Union does not implement java.io.Serializable</li>
<li><a href="https://issues.apache.org:443/jira/browse/AXIS2-4842">AXIS2-4842</a>: NPE in TempFileManager</li>
<li><a href="https://issues.apache.org:443/jira/browse/AXIS2-4871">AXIS2-4871</a>: Null Pointer Exception in AxisService.printXSD</li>
<li><a href="https://issues.apache.org:443/jira/browse/AXIS2-4883">AXIS2-4883</a>: Javadoc link broken on site and in documents distribution</li>
<li><a href="https://issues.apache.org:443/jira/browse/AXIS2-4885">AXIS2-4885</a>: Unsubstituted variable ${axis2_version} in 1.5.3 site and documents distribution</li> 
<li><a href="https://issues.apache.org:443/jira/browse/AXIS2-4887">AXIS2-4887</a>: TargetNameSpace required for XSD2Java</li>
<li><a href="https://issues.apache.org:443/jira/browse/AXIS2-4888">AXIS2-4888</a>: The org.apache.axis2:axis2 Maven artifact should not have a classifier</li>
<li><a href="https://issues.apache.org:443/jira/browse/AXIS2-4889">AXIS2-4889</a>: SOAPConnectionTest#testGet slows down the build</li>
<li><a href="https://issues.apache.org:443/jira/browse/AXIS2-4896">AXIS2-4896</a>: Unable to install axis2.eclipse.codegen.plugin into eclipse</li>
<li><a href="https://issues.apache.org:443/jira/browse/AXIS2-4901">AXIS2-4901</a>: LinkageError related to DOM classes when using the codegen plugin for Eclipse</li>
<li><a href="https://issues.apache.org:443/jira/browse/AXIS2-4909">AXIS2-4909</a>: Simple MTOM web service no longer works due to missing closing MIME boundary.</li>
</ul>
<p>In addition, this release contains changes required for the Sandesha2 1.4 release.</p>
<h3>November 12, 2010 - Apache Axis2/Java Version 1.5.3 Released!</h3>
<p>1.5.3 is a maintenance release that contains the following improvements:</p>
<ul>
<li>Improved support for SSL when using the servlet transport: Axis2 can now be configured
so that generated WSDLs contain https endpoints (<a href="https://issues.apache.org/jira/browse/AXIS2-4465">AXIS2-4465</a>).</li>
<li>Improved compatibility with Rampart (<a href="https://issues.apache.org/jira/browse/AXIS2-3213">AXIS2-3213</a>
and <a href="https://issues.apache.org/jira/browse/AXIS2-4870">AXIS2-4870</a>) and Sandesha2 (potential HTTP connection pool starvation).</li>
<li>Axiom has been upgraded to 1.2.10. This version contains performance improvements relevant for Rampart.</li>
<li>Application (business) faults are no longer logged at level ERROR (<a href="https://issues.apache.org/jira/browse/AXIS2-4280">AXIS2-4280</a>).</li>
<li>Improved conformance to the SAAJ specifications. The 1.5.3 release contains a set of fixes and improvements for the SAAJ
implementation developed on the trunk and not included in previous releases from the 1.5 branch.</li>
<li>Axis2 now relies exclusively on dependencies available from the Maven central repository, and no other Maven
repositories are required. This in particular fixes a build problem that appeared after the 1.5.2 release.</li>
<li>The Eclipse and IntelliJ IDEA plugins are again available for <a href="tools/index.html">download</a> via the Axis2 Web site
(previous 1.5.x versions could only be downloaded from the Maven repository).</li>
</ul>
<p>[ <a href="download.cgi#1_5_3"><strong>Download</strong> ]</a></p>
<h3>September 6, 2010 - Apache Axis2/Java Version 1.5.2 Released!</h3>
<p>1.5.2 is a maintenance release to fix the security issue described in
<a href="http://svn.apache.org/repos/asf/axis/axis2/java/core/security/CVE-2010-1632.pdf">CVE-2010-1632</a>
as well as an XSS vulnerability in the admin console and some other minor issues. It also
upgrades Axiom to version 1.2.9.</p>
<p>[ <a href="download.cgi#1_5_2"><strong>Download</strong></a> ]</p>
<h3>October 23, 2009 - Apache Axis2/Java Version 1.5.1 Released!</h3>
<p>The 1.5.1 version fixes some <a href="http://issues.apache.org/jira/browse/AXIS2">bugs</a>, including most notably a connection starvation issue that would cause a large number of sockets stuck in CLOSE_WAIT or TIME_WAIT.</p>
<p><b>PLEASE NOTE:</b> As of Axis2 1.5, we now <i>require</i> JDK 1.5 or above.  JDKs 1.4 or previous are no longer supported.</p>
<p>[ <a href="download.cgi#1_5_1"><strong>Download</strong></a> ]</p>
<p>Please see the <a href="refLib.html">Axis
Reference Library</a> for a list of technical resources that should
prove useful on this project.</p>
<h3><em>Why Apache Axis2:</em></h3>
<p>A new architecture for Axis2 was introduced during the August
2004 Summit in Colombo, Sri Lanka. The new architecture on which
Axis2 is based on is more flexible, efficient and configurable in
comparison to <a href=
"http://ws.apache.org/axis/java/architecture-guide.html">Axis1.x
architecture</a>. Some well established concepts from Axis 1.x,
like handlers etc., have been preserved in the new
architecture.</p>
<p>Apache Axis2 not only supports SOAP 1.1 and SOAP 1.2, but it
also has integrated support for the widely popular <a href=
"http://www.xfront.com/REST-Web-Services.html">REST style of Web
services</a>. The same business logic implementation can offer both
a WS-* style interface as well as a REST/POX style interface
simultaneously.</p>
<p>Apache Axis2 is more efficient, more modular and more
XML-oriented than the older version. It is carefully designed to
support the easy addition of plug-in "modules" that extend their
functionality for features such as security and reliability. The
<a href="modules/index.html">Modules</a>
currently available or under development include:</p>
<ul>
<li><a href=
"http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsrm"
>WS-ReliableMessaging</a> - Supported by <a href=
"http://axis.apache.org/axis2/java/sandesha/">Apache
Sandesha2</a></li>
<li><a href=
"http://www-128.ibm.com/developerworks/library/specification/ws-tx/#coor"
>WS-Coordination</a> and <a href=
"http://www-128.ibm.com/developerworks/library/specification/ws-tx/#atom"
>WS-AtomicTransaction</a> - Supported by <a href=
"http://axis.apache.org/axis2/java/kandula/">Apache Kandula2</a></li>
<li><a href=
"http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wss"
>WS-Security</a> - Supported by <a href=
"http://axis.apache.org/axis2/java/rampart/">
Apache Rampart</a></li>
<li><a href="http://www.w3.org/Submission/ws-addressing/"
>WS-Addressing</a> -Module included as part of Axis2
core</li>
</ul>
<p>Apache Axis2 is built on <a href=
"http://ws.apache.org/axiom/">Apache AXIOM</a>, a
new high performant, pull-based XML object model.</p>
<p>Axis2 comes with many new features, enhancements and industry
specification implementations. The key features offered are as
follows:</p>
<ul>
<li>
<p style="margin-bottom: 0in"><strong>Speed</strong> - Axis2 uses
its own object model and StAX (Streaming API for XML) parsing to
achieve significantly greater speed than earlier versions of Apache
Axis.</p>
</li>
<li>
<p style="margin-bottom: 0in"><strong>Low memory foot
print</strong>- Axis2 was designed ground-up keeping low memory
foot print in mind.</p>
</li>
<li>
<p style="margin-bottom: 0in"><strong>AXIOM</strong> - Axis2 comes
with its own light-weight object model, AXIOM, for message
processing which is extensible, highly performant and is developer
convenient.</p>
</li>
<li>
<p style="margin-bottom: 0in"><strong><a name="Hot_Deployment" id=
"Hot_Deployment"></a>Hot Deployment</strong> - Axis2 is equipped
with the capability of deploying Web services and handlers while
the system is up and running. In other words, new services can be
added to the system without having to shut down the server. Simply
drop the required Web service archive into the services directory
in the repository, and the deployment model will automatically
deploy the service and make it available for use.</p>
</li>
<li>
<p style="margin-bottom: 0in"><strong>Asynchronous Web
services</strong> - Axis2 now supports asynchronous Web services
and asynchronous Web services invocation using non-blocking clients
and transports.</p>
</li>
<li>
<p style="margin-bottom: 0in"><strong>MEP Support</strong> - Axis2
now comes handy with the flexibility to support Message Exchange
Patterns (MEPs) with in-built support for basic MEPs defined in
WSDL 2.0.</p>
</li>
<li>
<p style="margin-bottom: 0in"><strong>Flexibility</strong> - The
Axis2 architecture gives the developer complete freedom to insert
extensions into the engine for custom header processing, system
management, and <em>anything else you can imagine</em>.</p>
</li>
<li>
<p style="margin-bottom: 0in"><strong>Stability</strong> - Axis2
defines a set of published interfaces which change relatively
slowly compared to the rest of Axis.</p>
</li>
<li>
<p style="margin-bottom: 0in"><strong>Component-oriented
Deployment</strong> - You can easily define reusable networks of
Handlers to implement common patterns of processing for your
applications, or to distribute to partners.</p>
</li>
<li>
<p style="margin-bottom: 0in"><strong>Transport Framework</strong>
- We have a clean and simple abstraction for integrating and using
Transports (i.e., senders and listeners for SOAP over various
protocols such as SMTP, FTP, message-oriented middleware, etc), and
the core of the engine is completely transport-independent.</p>
</li>
<li>
<p style="margin-bottom: 0in"><strong>WSDL support</strong> - Axis2
supports the Web Service Description Language, version <a href=
"http://www.w3.org/TR/wsdl">1.1</a> and <a href=
"http://www.w3.org/TR/wsdl20/">2.0</a>, which allows you to easily
build stubs to access remote services, and also to automatically
export machine-readable descriptions of your deployed services from
Axis2.</p>
</li>
<li>
<p style="margin-bottom: 0in"><strong>Add-ons</strong> - Several
Web services specifications have been incorporated including
<a href="http://ws.apache.org/wss4j/">WSS4J</a> for
security (Apache Rampart), <a href="http://axis.apache.org/axis2/java/sandesha/"
>Sandesha</a> for reliable messaging, <a href=
"http://axis.apache.org/axis2/java/kandula/">Kandula</a> which
is an encapsulation of WS-Coordination, WS-AtomicTransaction and
WS-BusinessActivity.</p>
</li>
<li>
<p style="margin-bottom: 0in"><strong>Composition and
Extensibility</strong> - Modules and phases improve support for
composability and extensibility. Modules support composability and
can also support new WS-* specifications in a simple and clean
manner. They are however not <a href="#Hot_Deployment">hot
deployable</a> as they change the overall behavior of the
system.</p>
</li>
</ul>
<p>We hope you enjoy using Axis2. Please note that this is an
open-source effort. If you feel the code could use new features or
fixes, or the documentation can be improved, please get involved
and lend us a hand! The Axis developer community welcomes your
participation.</p>
<p>Let us know what you think! Send your feedback on Axis2 to
"<a href=
"mailto:java-user@axis.apache.org">java-user@axis.apache.org</a>". Make
sure to prefix the subject of the mail with [Axis2].</p>
<h2>Features of Axis2 Latest Version</h2>
<p>Apache Axis2 Version 1.4 comes with performance improvements and
a number bug fixes over the 1.3 release. Check out the complete list of
features below.</p>
<h3>Programming Model</h3>
<ul>
<li>Improved, XML-centric client API including full WSDL and policy
support</li>
<li><a href="docs/jaxws-guide.html">Support for JAXWS-style services and clients</a></li>
<li>Support for POJO and Spring services and clients</li>
<li>Support for any message exchange pattern</li>
<li>Synchronous and asynchronous calls</li>
<li>Archived service deployment model supporting full service
encapsulation with versioning support</li>
<li>Archived module deployment model supporting controlled
extensibility with versioning support</li>
<li><a href="#Hot_Deployment">Hot deployment</a></li>
<li>WS-Policy driven code generation extensions</li>
<li>Flexible service life cycle model</li>
<li>Automatic support for POX (REST) style invocation of
services</li>
<li>Support for querying a service's WSDL (using ?wsdl), schema
(using ?xsd) and policies (using ?policy)</li>
<li>WSDL 2.0</li>
<li>Custom Deployers</li>
<li>Binary serialization (Fast Infoset)</li>
<li>JSON support</li>
<li>EJB Provider support</li>
</ul>
<h3>Supported Specifications</h3>
<ul>
<li>SOAP 1.1 and 1.2</li>
<li>Message Transmission Optimization Mechanism (MTOM), XML
Optimized Packaging (XOP) and SOAP with Attachments</li>
<li>WSDL 1.1, including both SOAP and HTTP bindings</li>
<li>WS-Addressing (submission and final)</li>
<li>WS-Policy</li>
<li>SAAJ 1.1</li>
</ul>
<h3>Transports</h3>
<ul>
<li>HTTP</li>
<li>SMTP</li>
<li>JMS</li>
<li>TCP</li>
</ul>
<h3>Supported Data Bindings</h3>
<ul>
<li>Axis Data Binding (ADB)</li>
<li>XMLBeans</li>
<li>JibX</li>
<li>JaxBRI (Experimental)</li>
</ul>
<h2><a name="Tools_included_in this_Release">Tools Included in This
Release</a></h2>
<p>[<a href="tools/index.html"
>Download Tool Plug-ins</a>]</p>
<ol type="1">
<li>Axis2 Web Application (Web App)</li>
<li>WSDL2WS- <a href="tools/eclipse/wsdl2java-plugin.html"
>eclipse plug-in</a><a>/</a> <a href=
"tools/CodegenToolReference.html">Command line
version</a><a>/</a><a href=
"tools/idea/Idea_plug-in_userguide.html#WSDL2Java_Code_Generation"
>IntelliJ IDEA plug-in</a><a>/</a><a href=
"tools/maven-plugins/maven-wsdl2code-plugin.html"
>Maven2 WSDL2Code Plug-in</a></li>
<li>Service Archive Wizard- <a href=
"tools/eclipse/servicearchiver-plugin.html"
>eclipse plug-in</a>/ <a href=
"tools/idea/Idea_plug-in_userguide.html#Create_Service_Archive"
>IntelliJ IDEA plug-in</a>/ <a href=
"tools/maven-plugins/maven-aar-plugin.html"
>Maven2 AAR Plug-in</a></li>
<li>Java2WSDL- <a href=
"tools/maven-plugins/maven-java2wsdl-plugin.html"
>Maven2 Java2WSDL Plug-in</a></li>
</ol>
<h2>Extension Modules</h2>
<ul>
<li>Apache Rampart: Supporting WS-Security (and soon
WS-Policy)</li>
<li>Apache Sandesha2: Supporting WS-Reliable Messaging</li>
</ul>
(Apache Axis2 comes built in with a module that supports
WS-Addressing.)
<h2>Known Issues and Limitations</h2>
<h2>Archived News</h2>
<p>For information on previous Axis2 releases running up to the
current release see the <a href="archived_news.html"
>'Axis2 Archived News'</a> page.</p>
For other news items from Apache Software Foundation see:
<ul>
<li><a href=
"http://www.apachenews.org/archives/cat_apache_webservices_index.html">
Web services related news on the Apache News Blog Online</a></li>
<li><a href="http://www.apachenews.org/">The Apache News Blog
Online</a></li>
</ul>
</body>
</document>
