| <!-- |
| ~ 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 |
| ~ |
| ~ https://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™ is a Web Services JSON / SOAP / WSDL engine, the successor to the |
| widely used <a href= |
| "https://ws.apache.org/axis/">Apache Axis</a> SOAP stack. Axis2 serves |
| the same business logic through multiple protocols simultaneously — |
| JSON-RPC, REST, and <a href="docs/mcp-architecture.html">MCP (Model Context Protocol)</a> |
| — from a single service deployment. |
| 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= |
| "https://axis.apache.org/axis2/c/core/"><strong>Apache Axis2/C</strong></a> |
| Web site for Axis2/C implementation information. |
| <strong>Apache Axis2/C 2.0.0 has been released</strong> — the first |
| release since 1.6.0 (2009). Axis2/C 2.0.0 adds HTTP/2 transport via |
| Apache httpd, JSON support via json-c, OpenAPI spec generation, and |
| an MCP stdio server with |
| the same tool schemas as Axis2/Java — enabling AI assistants to call |
| native C services on edge devices, Android phones, and IoT gateways |
| where a JVM cannot run. The same MCP client connects to both Axis2/Java |
| (enterprise) and Axis2/C (embedded) with identical protocol and identical |
| results. See the |
| <a href="https://axis.apache.org/axis2/c/core/">Axis2/C site</a> for details.</p> |
| <p><strong>Apache Rampart 2.0.0 is ready for release</strong> and will ship |
| immediately after Axis2/Java 2.0.1, on which it depends. Rampart 2.0.0 |
| brings WS-Security up to date with the Jakarta EE 9+ / Axis2 2.0.x line |
| (<code>jakarta.*</code> namespaces, modern WSS4J, current OpenJDK support) |
| so legacy SOAP services with WS-Security policies can run unchanged on |
| the same Tomcat 11 / WildFly 32 / WildFly 39 stack as the rest of |
| Axis2/Java. Minimum OpenJDK version is 17; tested with the same |
| server/JDK combinations listed below. See the |
| <a href="https://axis.apache.org/axis2/java/rampart/">Apache Rampart |
| site</a> for details.</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><em>Why Apache Axis2 in 2026:</em></h3> |
| |
| <p><strong>One service, three protocols.</strong> Axis2 is the only Java framework |
| that serves JSON-RPC, REST+OpenAPI, and |
| <a href="docs/mcp-architecture.html">MCP</a> from a single service class — |
| no code duplication, no wrapper layers. Add the |
| <a href="docs/spring-boot-starter.html">Spring Boot Starter</a> dependency and |
| your services are live on a modern application server. <strong>Minimum |
| OpenJDK version is 17.</strong> Tested configurations: Tomcat 11 with |
| OpenJDK 21 and OpenJDK 25, WildFly 32 with OpenJDK 21, and WildFly 39 |
| with OpenJDK 25.</p> |
| |
| <p>The architecture that made this possible was designed at the August 2004 Summit |
| in Colombo, Sri Lanka. Its handler chain — a pipeline of phases that |
| processes every message regardless of wire format — turned out to be the |
| ideal foundation for multi-protocol support twenty years later. Security handlers, |
| logging handlers, and custom interceptors written for SOAP apply unchanged to |
| JSON-RPC, REST, and MCP traffic. See the |
| <a href="docs/Axis2ArchitectureGuide.html">Architecture Guide</a> for details.</p> |
| |
| <p>Axis2 supports SOAP 1.1/1.2, REST, |
| <a href="docs/json_support_gson.html">JSON-RPC</a> (via Moshi or GSON), |
| <a href="docs/openapi-rest-userguide.html">OpenAPI 3.0 auto-generation</a> |
| with Swagger UI, and |
| <a href="docs/json-rpc-mcp-guide.html">MCP tool catalogs</a> for AI agents. |
| <a href="docs/http2-integration-guide.html">HTTP/2 support</a> is built into |
| the serialization pipeline — streaming JSON formatters flush every 64 KB, |
| converting buffered responses into HTTP/2 DATA frames during serialization, |
| not after. Response field selection (<code>?fields=</code>) filters at the |
| serialization layer with zero overhead when unused. Most frameworks treat |
| HTTP/2 as a transparent container feature; Axis2 integrates it into the |
| message formatter. |
| Legacy SOAP services continue to work unchanged — the SOAP handler chain, |
| WS-Security (<a href="https://axis.apache.org/axis2/java/rampart/">Apache Rampart</a>), |
| and WS-Addressing are fully supported.</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>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>, 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>JSON support</strong> - Axis2 |
| supports the creation of Web Services using JavaScript Object Notation, with <a href= |
| "https://github.com/google/gson">GSON</a> and <a href= |
| "https://github.com/square/moshi">Moshi</a>, which allows you to easily |
| build POJO based services that receive and return JSON.</p> |
| </li> |
| <li> |
| <p style="margin-bottom: 0in"><strong>OpenAPI support</strong> - Axis2 |
| supports automatic generation of <a href= |
| "https://spec.openapis.org/oas/latest.html">OpenAPI 3.0</a> specifications for REST and JSON services, with integrated <a href= |
| "https://swagger.io/tools/swagger-ui/">Swagger UI</a> for interactive API documentation and testing, enabling modern API development workflows.</p> |
| </li> |
| <li> |
| <p style="margin-bottom: 0in"><strong>MCP support</strong> - Axis2 |
| supports <a href="https://modelcontextprotocol.io/">Model Context Protocol</a> (MCP), |
| enabling AI assistants (Claude, custom agents) to discover and call Axis2 services |
| as tools. The <a href="docs/json-rpc-mcp-guide.html">MCP tool catalog</a> is |
| auto-generated from deployed services at <code>/openapi-mcp.json</code> with full |
| parameter schemas, types, and defaults. An <a href="docs/mcp-architecture.html">MCP |
| bridge</a> (stdio JAR) connects Claude Desktop to any Axis2 deployment over |
| HTTPS+mTLS. See <a href="docs/mcp-examples.html">live benchmark examples</a> with |
| performance data.</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> |
| </body> |
| </document> |