| <!-- |
| ~ 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> |
| <h3>Key Features</h3> |
| <ul> |
| <li><strong>JSON-RPC with |
| <a href="https://github.com/google/gson">Gson</a> and |
| <a href="https://github.com/square/moshi">Moshi</a></strong> — |
| build POJO-based services that receive and return JSON. Streaming |
| formatters flush every 64 KB for memory-efficient large responses.</li> |
| |
| <li><strong><a href="docs/openapi-rest-userguide.html">OpenAPI 3.0</a> |
| auto-generation</strong> — specifications generated from deployed |
| services with integrated |
| <a href="https://swagger.io/tools/swagger-ui/">Swagger UI</a> for |
| interactive API testing.</li> |
| |
| <li><strong><a href="docs/json-rpc-mcp-guide.html">MCP tool catalogs</a> |
| for AI agents</strong> — AI assistants discover and call your services |
| as tools via the auto-generated catalog at <code>/openapi-mcp.json</code>. |
| See <a href="docs/mcp-examples.html">live examples</a>.</li> |
| |
| <li><strong><a href="docs/http2-integration-guide.html">HTTP/2 |
| streaming</a></strong> — integrated into the serialization pipeline, |
| not just the transport layer. Response |
| <a href="docs/json-streaming-formatter.html#Field_Selection">field |
| selection</a> (<code>?fields=</code>) filters at serialization time.</li> |
| |
| <li><strong><a href="docs/spring-boot-starter.html">Spring Boot |
| Starter</a></strong> — one Maven dependency for servlet registration, |
| repository configuration, and OpenAPI/MCP activation. Supports WAR |
| deployment and embedded Tomcat.</li> |
| |
| <li><strong><a href="docs/openapi-jpa-schema.html">OpenAPI schemas |
| from Hibernate</a></strong> — generate read/write JSON Schemas from |
| JPA annotations or <code>.hbm.xml</code> files, keeping API contracts |
| in sync with the database model.</li> |
| |
| <li><strong><a href="docs/json-pagination.html">Built-in |
| pagination</a></strong> — offset/limit with server-enforced safety |
| limits, mapping directly to JPA/Hibernate DAOs.</li> |
| |
| <li><strong><a name="Hot_Deployment" id="Hot_Deployment"></a>Hot |
| deployment</strong> — add or update services without restarting the |
| server by dropping <code>.aar</code> archives into the services |
| directory.</li> |
| |
| <li><strong>SOAP legacy</strong> — full SOAP 1.1/1.2 support |
| including WSDL, WS-Security |
| (<a href="https://axis.apache.org/axis2/java/rampart/">Apache Rampart</a>), |
| WS-Addressing, MTOM attachments, and the pluggable handler chain |
| architecture from the original 2004 design.</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> |