| # 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 |
| ``` |
| |
| 1. **Transport Layer**: HTTP/2 (nghttp2) or HTTP/1.1 |
| 2. **In Handlers**: Authentication, logging, validation |
| 3. **Service Invocation**: Your business logic |
| 4. **Out Handlers**: Response transformation |
| 5. **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](axis2-xml.md). |
| |
| ### services.xml |
| |
| Per-service configuration: |
| |
| - Service description |
| - Operations |
| - Parameters |
| - Handlers |
| |
| See [Services Guide](services.md). |
| |
| ## 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](../userguide/json-httpd-h2-userguide.md) for detailed examples and configuration. |
| |
| ### Legacy SOAP/HTTP |
| |
| For existing SOAP integrations: |
| |
| - SOAP 1.1 and 1.2 |
| - WS-* specifications |
| - WSDL support |
| |
| ## Next Steps |
| |
| - [Configuration](axis2-xml.md) - Server configuration |
| - [Services](services.md) - Creating services |
| - [Clients](clients.md) - Building clients |