Axis2 HTTP/2 Simplified Configuration Example
Minimal axis2.xml Configuration
This example demonstrates the minimal configuration required for complete HTTP/2 support with Enhanced Moshi H2 JSON processing and production-ready performance optimization:
Complete Minimal Configuration
<?xml version="1.0" encoding="UTF-8"?>
<axisconfig name="AxisJava2.0">
<!-- ================================================= -->
<!-- Core Configuration with Intelligent Defaults -->
<!-- ================================================= -->
<!-- JSON Processing: Enhanced Moshi H2 (Automatic Optimization) -->
<parameter name="enableJSONOnly">true</parameter>
<!-- ================================================= -->
<!-- Message Receivers (Unchanged) -->
<!-- ================================================= -->
<messageReceivers>
<messageReceiver mep="http://www.w3.org/ns/wsdl/in-out"
class="org.apache.axis2.json.moshi.rpc.JsonRpcMessageReceiver" />
<messageReceiver mep="http://www.w3.org/ns/wsdl/in-only"
class="org.apache.axis2.json.moshi.rpc.JsonInOnlyRPCMessageReceiver"/>
</messageReceivers>
<!-- ================================================= -->
<!-- Message Formatters: Enhanced Moshi H2 (GSON H2 also available) -->
<!-- ================================================= -->
<messageFormatters>
<!-- Enhanced Moshi H2 JSON Formatter (Intelligent Defaults) - Recommended -->
<messageFormatter contentType="application/json"
class="org.apache.axis2.json.moshih2.EnhancedMoshiJsonFormatter"/>
<!-- Alternative: Enhanced GSON H2 JSON Formatter
<messageFormatter contentType="application/json"
class="org.apache.axis2.json.gsonh2.EnhancedGsonJsonFormatter"/> -->
</messageFormatters>
<!-- ================================================= -->
<!-- Message Builders: Enhanced Moshi H2 (GSON H2 also available) -->
<!-- ================================================= -->
<messageBuilders>
<!-- Enhanced Moshi H2 JSON Builder (Intelligent Defaults) - Recommended -->
<messageBuilder contentType="application/json"
class="org.apache.axis2.json.moshih2.EnhancedMoshiJsonBuilder"/>
<!-- Alternative: Enhanced GSON H2 JSON Builder
<messageBuilder contentType="application/json"
class="org.apache.axis2.json.gsonh2.EnhancedGsonJsonBuilder"/> -->
</messageBuilders>
<!-- ================================================= -->
<!-- HTTP/2 Transport: Minimal Configuration -->
<!-- ================================================= -->
<!-- HTTP/2 Transport Sender (Intelligent Defaults) -->
<transportSender name="http"
class="org.apache.axis2.transport.h2.impl.httpclient5.H2TransportSender">
<parameter name="PROTOCOL">HTTP/2.0</parameter>
</transportSender>
<!-- HTTPS HTTP/2 Transport (Inherits All Intelligent Defaults) -->
<transportSender name="https"
class="org.apache.axis2.transport.h2.impl.httpclient5.H2TransportSender">
<parameter name="PROTOCOL">HTTP/2.0</parameter>
</transportSender>
</axisconfig>
What's Automatically Configured
✅ HTTP/2 Transport Intelligent Defaults
The following parameters are automatically optimized without any configuration:
# HTTP/2 Core Parameters (Automatic)
maxConcurrentStreams = 100 # Memory-constrained optimization
maxConnectionsTotal = 50 # Enterprise connection management
maxConnectionsPerRoute = 10 # Route-specific optimization
initialWindowSize = 2097152 # 2MB flow-control window (not related to 64KB flush interval)
streamingBufferSize = 65536 # Server-side flush interval (64KB is correct here)
connectionKeepAliveTime = 300000 # 5-minute balanced timeout
connectionTimeout = 30000 # 30-second connection establishment
responseTimeout = 300000 # 5-minute large payload tolerance
# JSON processing is configured by selecting the message builder and
# formatter classes in axis2.xml (e.g. EnhancedMoshiJsonBuilder).
# No additional threshold parameters are needed here.
# Security and TLS (Automatic)
supportedProtocols = "TLSv1.2,TLSv1.3" # Modern TLS versions
enableALPN = true # HTTP/2 protocol negotiation
Configuration Comparison
| Aspect | Complex Configuration (Before) | Intelligent Defaults (After) |
|---|---|---|
| Configuration Lines | 120+ lines | 15 lines |
| Required Parameters | 35+ parameters | 2 parameters |
| Setup Time | 45+ minutes | 5 minutes |
| Error Probability | High (manual tuning) | Minimal (tested defaults) |
| Performance Optimization | Manual calculation required | Automatic for all scenarios |
| Maintenance Effort | Ongoing parameter tuning | Zero maintenance required |
Advanced Customization (Optional)
If you need to override specific defaults for specialized requirements:
<!-- Example: Override specific parameters for custom requirements -->
<transportSender name="http" class="org.apache.axis2.transport.h2.impl.httpclient5.H2TransportSender">
<parameter name="PROTOCOL">HTTP/2.0</parameter>
<!-- Override defaults only if needed -->
<parameter name="maxConcurrentStreams">200</parameter> <!-- Higher for powerful servers -->
<parameter name="responseTimeout">600000</parameter> <!-- 10 minutes for very large payloads -->
</transportSender>
Migration from Complex Configuration
Step 1: Backup Current Configuration
cp axis2.xml axis2-complex-backup.xml
Step 2: Replace with Simplified Configuration
Replace the extensive parameter configuration with the minimal example above.
Step 3: Test Performance
Intelligent defaults are designed to provide optimal performance. Test to confirm performance meets or exceeds the complex configuration.
Step 4: Fine-tune Only If Necessary
Use the built-in optimization recommendations to identify if any specific parameters need adjustment for your use case.
Benefits Realized
- 📦 Configuration Simplicity: 95% reduction in required parameters
- ⚡ Faster Setup: 5 minutes vs 45+ minutes configuration time
- 🎯 Optimal Performance: Production-tested defaults for all scenarios
- 🔧 Zero Maintenance: No ongoing parameter tuning required
- 🛡️ Reduced Errors: Eliminates configuration mistakes and compatibility issues
- 📈 Consistent Results: Same high performance across different environments
Support and Documentation
- Axis2 HTTP/2 Integration Guide - Complete implementation details
- WildFly + Axis2 HTTP/2 Integration - WildFly-specific optimization
Apache Axis2
