User Guide Overview
Apache Axis2/C is a web services framework that supports both modern HTTP/2 JSON-RPC and legacy SOAP protocols.
Core Concepts
Services
A service is a deployable unit that exposes one or more operations. Services are packaged as shared libraries (.so on Linux, .dll on Windows) with a services.xml descriptor.
services/
└── MyService/
├── libmyservice.so
└── services.xml
Operations
An operation is a callable method within a service. Each operation has:
- A name (used in the URL path or SOAP action)
- A message receiver (JSON or SOAP)
- Optional handlers for pre/post processing
Message Context
The message context carries request/response data through the processing pipeline:
- HTTP headers
- Protocol information (HTTP/2 vs HTTP/1.1)
- Client certificates (for mTLS)
- Service and operation references
Architecture
Processing Pipeline
Request → Transport → Handlers → Service → Handlers → Transport → Response
- Transport Layer: HTTP/2 (nghttp2) or HTTP/1.1
- In Handlers: Authentication, logging, validation
- Service Invocation: Your business logic
- Out Handlers: Response transformation
- Transport Layer: Send response
Module System
Axis2/C uses a module system for extensibility:
- Rampart - WS-Security (legacy SOAP)
- mod_axis2 - Apache httpd integration
Configuration Files
axis2.xml
Main server configuration:
- Transport settings (HTTP/2, TLS)
- Module references
- Global handlers
- Service deployment paths
See axis2.xml Configuration.
services.xml
Per-service configuration:
- Service description
- Operations
- Parameters
- Handlers
See Services Guide.
Protocol Support
HTTP/2 + JSON (Recommended)
Modern protocol stack for new applications:
- Binary framing, multiplexing
- JSON request/response bodies
- TLS 1.3 with mTLS support
See the HTTP/2 + JSON User Guide for detailed examples and configuration.
Legacy SOAP/HTTP
For existing SOAP integrations:
- SOAP 1.1 and 1.2
- WS-* specifications
- WSDL support
Next Steps