Welcome to Apache Axis2/C
Apache Axis2/C is a Web services engine implemented in the C programming language. It is based on the extensible and flexible Axis2 architecture. Apache Axis2/C can be used to provide and consume WebServices. It has been implemented with portability and ability to embed in mind, hence could be used as a Web services enabler in other software.
Apache Axis2/C supports SOAP 1.1 and SOAP 1.2, as well as REST style of Webservices. A single service could be exposed both as a SOAP style as well as a REST style service simultaneously. It also has built in MTOM support, that can be used to exchange binary data.
Apache Axis2/C is efficient, modular and is designed with extensibility. The extensible design allows it to support the full WS-* stack with the concept of modules. Apache Axis2/C is the Web services engine that supports the most number of WS-* specification implementations in C, with guaranteed interoperability. This enables using C in Service Oriented Architecture (SOA) implementations, and would be very useful when integrating legacy systems into SOA.
The following WS-* specifications are supported, either as built in modules
or as separate Apache projects:
Key Features
- Support for one-way messaging (In-Only) and request response messaging (In-Out)
- Client APIs: Easy to use service client API and more advanced operation client API
- Transports supported: HTTP
- Inbuilt HTTP server called simple axis server
- Apache2 httpd module called mod_axis2 for server side
- IIS module for server side. Supports IIS 5.1, 6 and 7
- Client transport with ability to enable SSL support
- Basic HTTP Authentication
- AMQP Transport based on Apache Qpid (Experimental)
-
- libcurl based client transport
- Module architecture, mechanism to extend the SOAP processing model
- WS-Addressing support, both the submission (2004/08) and final (2005/08) versions, implemented as a module
- MTOM/XOP support
- AXIOM, an XML object model optimized for SOAP 1.1/1.2 messages; This has complete XML infoset support
- XML parser abstraction
- Libxml2 wrapper
- Guththila pull parser support
- Both directory based and archive based deployment models for deploying services and modules
- Description hierarchy providing access to static data of Axis2/C runtime (configuration, service groups, services, operations and messages)
- Context hierarchy providing access to dynamic Axis2/C runtime information(corresponding contexts to map to each level of description hierarchy)
- Message receiver abstraction
- Inbuilt raw XML message receiver
- Code generation tool for stub and skeleton generation for a given WSDL (based on Java tool)
- Axis Data Binding (ADB) support
- Transport proxy support
- REST support (more POX like) using both HTTP POST and GET
- Comprehensive documentation
- WS-Policy implementation called Neethi/C, with WS-SecurityPolicy extension
- TCP Transport, for both client and server side
Changes Since Last Release
- AMQP Transport support with Apache Qpid. (At an experimental stage and not working under Windows)
- Modifications to IIS Module to support IIS 6 & 7.
- Added a JScript file to automate IIS module registry configuration
- Specifying the MEP in the services.xml for non in-out messages made mandatory
- Improved the in-only message handling
- Improvements to Guthtila for better performance
- Improvements to TCPMon tool
- Memory leak fixes
- Many bug fixes