Apache Axis2 2.0.1 Release Notes
Java Version Support
Apache Axis2 2.0.1 adds OpenJDK 21 and 25 support and requires OpenJDK 17 as the minimum version (upgraded from Java 8). The SecurityManager APIs removed in Java 21 are handled transparently, and legacy Date/Calendar APIs have been modernized to use java.time APIs. All features are fully tested and supported on Java 17, 21, and 25.
New Features
- AXIS2-6098: HTTP/2 transport module with multiplexing, ALPN negotiation, and adaptive timeouts. Includes standalone HTTP/2 Java client example (
Http2JsonClient). - AXIS2-6103: Streaming JSON message formatters (
MoshiStreamingMessageFormatter,JSONStreamingMessageFormatter) withFlushingOutputStreamthat flushes every 64KB. Prevents reverse proxy 502 errors on large responses. Field-level filtering viaFieldFilteringMessageFormatterand?fields=query parameter. MCP (Model Context Protocol) support for AI agents with auto-generatedinputSchemafrom Java method parameter types. - AXIS2-6100: OpenAPI 3.0.1 spec generation and Swagger UI from Axis2 service definitions.
- axis2-spring-boot-starter: New module for Spring Boot autoconfiguration of Axis2.
- AXIS2-6040:
Automatic-Module-Namedefined for Java 9+ module system compatibility.
Removed Features
- AXIS2-6105: Eclipse codegen and service plugins, IntelliJ IDEA plugin, OSGi module (AXIS2-6076), JiBX data binding, SOAPMonitor, Scripting (BSF/JSR-223), FastInfoset. See AXIS2-6105 for details.
- AXIS2-6102: WSDL 2.0 (Woden) implementation removed. WSDL 1.1 remains fully supported.
- AXIS2-6097: Clustering feature removed.
- AXIS2-6079: Java Security Manager / AccessController code removed (deprecated in Java 17, removed in Java 24).
Breaking Changes
- Minimum Java Version: Requires Java 17 (previously Java 8)
- API Modernization: Legacy Date/Calendar usage replaced with java.time.Instant APIs
- Security: SecurityManager dependent code removed for Java 21+ compatibility
- Removed modules: Users of JiBX, SOAPMonitor, Scripting, FastInfoset, Eclipse/IDEA plugins, OSGi, WSDL 2.0, or Clustering must migrate before upgrading from 2.0.0
Bug
- [AXIS2-4146] - HTTP status code 400 is changed to 500
- [AXIS2-5696] - Axis 2 threads are not closing properly
- [AXIS2-5788] - ConfigurationContext.getServiceGroupContext(id) always touches the id - ("Observer Effect")
- [AXIS2-5852] - 'Axis2 task' threads stays in waiting state without terminating
- [AXIS2-5858] - soap:address location's value is wrong with IPv6
- [AXIS2-5862] - Handler / Phase Indexes incorrect?
- [AXIS2-5904] - Intermittent Rampart policy configuration missing Error
- [AXIS2-5965] - .class files up to 3 times redundantly in jar file
- [AXIS2-5966] - Axis2 1.8.0-SNAPSHOT fix did not work for JDK 11
- [AXIS2-5972] - missing namespace declaration - attribute present in multiple XSD's not parsed correctly
- [AXIS2-6031] - xmlbeans generator generates methods with @deprecated in javadoc only, but not marked with @Deprecated annotation
- [AXIS2-6047] - Missing Port in the Host header of the requests coming from HTTPClient4TransportSender implementation.
- [AXIS2-6055] - Basic Auth credentials are missing in request
- [AXIS2-6061] - Axis2 client parses soap envolope in case of a http-404
- [AXIS2-6074] - Issue with empty enum tags
- [AXIS2-6083] - Cookie Handling not work with 2.0.0
- [AXIS2-6086] - AxisServlet - processAxisFault - does not guard against NumberFormatException
- [AXIS2-6087] - Master branch using 1.8.0 AAR/MAR dependencies - switch to 2.0.0?
- [AXIS2-6090] - Tomcat Version too high?
- [AXIS2-6091] - Problem handling HTTP Response in OutInAxisOperationClient / TransportUtils
- [AXIS2-6094] - CRC of some axis2 jars distributed via WAR archive is different than CRC of jars distributed via public repositories
- [AXIS2-6095] - Axis2's IDL parser (Corba Module) gives fault on valid comment
- [AXIS2-6096] - Attempted read on closed stream for multithreaded environment
- [AXIS2-6101] - Adapt to changes in HttpClient 5.6
Improvement
- [AXIS2-3879] - Ability to change the http status code in the response being sent to the client
- [AXIS2-5762] - Add Transport Ports to MessageContext
- [AXIS2-5881] - Small improvement to the listServices.jsp to sort services and operations
- [AXIS2-6040] - Define Automatic-Module-Name for Java9 module system compatibility
- [AXIS2-6053] - cvc-complex-type.3.2.2: Attribute 'contentType' is not allowed to appear in element ...
- [AXIS2-6082] - Make Axis2 build reproducible
- [AXIS2-6085] - Build instructions in README don't mention bash requirement
Task
- [AXIS2-6076] - OSGI jakarta support is unmaintained
- [AXIS2-6079] - Remove the Java Security Manager from AccessController and Java2SecTest
- [AXIS2-6097] - Remove Clustering feature
- [AXIS2-6098] - Add HTTP/2 transport and docs explaining the benefits
- [AXIS2-6100] - Add REST support for OpenAPI (formerly known as Swagger)
- [AXIS2-6102] - Woden (WSDL 2.0) Removal
- [AXIS2-6103] - Add MCP protocol support for AI agents
- [AXIS2-6105] - Remove OSGi bundle packaging from transport modules
- [AXIS2-6106] - Remove unmaintained XMPP transport module
Apache Axis2
