Apache CXF: An Open Source Service Framework
Take the Apache CXF Users Survey!
The Apache CXF team would like your input to help improve the CXF project!
We're conducting an anonymous survey to help us identify where our efforts are
best spent in supporting the community. We'd like to get a feel for who our
users really are, what features are currently heavily used, what features
users would like to see, etc...
All users are encouraged to fill out the short (25 question) survey at:
The results of the survey will be given back to the CXF community to help
determine priorities and directions.
Apache CXF is an open source services framework. CXF helps you build and develop services using frontend programming APIs, like JAX-WS and JAX-RS. These services can speak a variety of protocols such as SOAP, XML/HTTP, RESTful HTTP, or CORBA and work over a variety of transports such as HTTP, JMS or JBI.
CXF includes a broad feature set, but it is primarily focused on the following areas:
- Web Services Standards Support: CXF supports a variety of web service standards including SOAP, the WSI Basic Profile, WSDL, WS-Addressing, WS-Policy, WS-ReliableMessaging, WS-Security, WS-SecurityPolicy, and WS-SecureConversation.
- Frontends: CXF supports a variety of "frontend" programming models. CXF implements the JAX-WS APIs (TCK compliant). It also includes a "simple frontend" which allows creation of clients and endpoints without annotations. CXF supports both contract first development with WSDL and code first development starting from Java. For REST, CXF also supports a JAX-RS (TCK compliant) frontend.
- Ease of use: CXF is designed to be intuitive and easy to use. There are simple APIs to quickly build code-first services, Maven plug-ins to make tooling integration easy, JAX-WS API support, Spring 2.x XML support to make configuration a snap, and much more.
- Binary and Legacy Protocol Support: CXF has been designed to provide a pluggable architecture that supports not only XML but also non-XML type bindings, such as JSON and CORBA, in combination with any type of transport.
- High Performance
- Intuitive & Easy to Use
Support for Standards
- JAX-WS, JSR-181, SAAJ, JAX-RS
- SOAP 1.1, 1.2, WS-I BasicProfile, WS-Security, WS-Addressing, WS-RM, WS-Policy
- WSDL 1.1
Multiple Transports, Bindings, Data Bindings, and Formats
- Bindings: SOAP, REST/HTTP
- Data bindings: JAXB 2.x, Aegis, XMLBeans, SDO
- Formats: XML, JSON, FastInfoset
- Transports: HTTP, Servlet, JMS
- Extensibility API allows additional bindings for CXF, enabling additional message format support such as CORBA/IIOP
- Lightweight containers: deploy services in Tomcat or Spring-based containers
- JBI integration: deploy as a service engine in a JBI container such as ServiceMix, OpenESB or Petals
- J2EE integration: deploy services in J2EE application servers such as Geronimo, JOnAS, JBoss, WebLogic, and WebSphere
- Standalone Java client/server
Support for Multiple Programming Languages
- Full support for JAX-WS 2.x client/server programming model
- JAX-WS 2.x synchronous, asynchronous and one-way API's
- JAX-WS 2.x Dynamic Invocation Interface (DII) API
- Support for wrapped and non-wrapped styles
- XML messaging API
- Support for CORBA
- Support for JBI with ServiceMix
- Java to WSDL
- WSDL to Java
- XSD to WSDL
- WSDL to XML
- WSDL to SOAP
- WSDL to service
Apache CXF is currently under heavy development. To get involved you can subscribe to the mailing lists. You can also grab the code from the Source Repository. You also need to read about Building CXF. For Eclipse users, you should read about Setting up Eclipse.