Apache CXF
The goal of the Apache CXF project is to deliver a high performance, fully featured services framework that is intuitive and easy to use. CXF will also implement important JCP and Web services standards. CXF simplifies the construction, integration, and flexible reuse of technical and business components using a standards-based, service-oriented architecture (SOA).
Using CXF, services are defined using WSDL contracts and are accessed using a number of different message formats (or bindings) and network protocols (or transports) including SOAP over HTTP, SOAP over JMS, XML over HTTP, and XML over JMS. CXF provides a pluggable architecture that supports both XML and non-XML type bindings in combination with any type of transport. The broad range of flexibility makes it possible to create and integrate Web services and legacy services using a single framework.
Goals of CXF
Support for Multiple Standards
JAX-WS, JAX-WSA, and JSR-181and SAAJ
SOAP 1.1, 1.2, WS-I BasicProfile,
WS-Security, WS-Addressing,
WS-RM and WS-Policy
WSDL 1.1 and 2.0
MTOM
Multiple Network Protocols (Transports) and Message Formats (Bindings)
Built-in support for SOAP and XML over HTTP, JMS, and Jabber transports
StAX-based streaming XML
Extensible API to support additional bindings including CSV and fixed record length
Data bindings include JAXB 2.0, XML Beans, Castor, and JiBX
Flexible Deployment
Lightweight containers: deploy services in Apache Tomcat or Spring-based containers
JBI integration: deploy as a service engine in a JBI container such as Apache Incubator's ServiceMix, Sun's OpenESB or ObjectWeb's Petals
SCA integration: deploy in an SCA container such as Apache Incubator's Tuscany
J2EE integration: deploy services in J2EE application servers such as Apache Geronimo, JOnAS, JBoss, WebLogic, and WebSphere
Standalone Java client/server
Support for Multiple Programming Languages
Full support for JAX-WS 2.0 client/server programming model
JAX-WS 2.0 synchronous, asynchronous and one-way API's
JAX-WS 2.0 Dynamic Invocation Interface (DII) API
Support for wrapped and non-wrapped styles
XML messaging API
Support for JavaScript and ECMAScript 4 XML (E4X) - both client and server
Support for CORBA with Yoko
Support for SCA withTuscany
Support for JBI with ServiceMix
Code Generation
Java to WSDL
WSDL to Java
XSD to WSDL
WSDL to XML
WSDL to SOAP
WSDL to service