The Apache CXF team is proud to announce the 2.0-M1 incubating release! Apache CXF (incubating) is a services framework focused on support for web service and Java standards. This release includes the following features:
- JAX-WS frontend - Apache CXF uses/implements the JAX-WS API's but makes no representation that this release is JAX-WS compliant.
- Java2WSDL and WSDL2Java tools
- SOAP 1.1 & 1.2, XML and REST/HTTP bindings
- JAXB 2.0 Databinding support
- JSON support with Jettison
- WSDL 1.1 support
- WS-Addressing support
- Support for MTOM and Soap with Attachments
- HTTP, Servlet, JMS and Local Transports
- Simple POJO service frontend
- JBI Service Engine. CXF services can be deployed into any JBI compliant container (ServiceMix or OpenESB)
- JCA 1.0 support, J2EE application can integrate with legacy application through JCA 1.0 support in CXF
- Spring Support
- Many other bug fixes and feature enhancements
The Apache CXF team welcomes outside involvement and would love to hear your feedback. More information on how to get involved can be found here.
To run samples included in the binary distribution of Apache CXF, you must install the Apache Ant 1.6.5 build utility, which can be downloaded from:
After installing Apache Ant, add the <AntInstallDir>/bin directory to your PATH.
Building the samples included in the binary distribution is easy. Go to the samples directory and follow the build instructions in the README.txt file included with each sample.
- There is an issue with Jetty HTTP that prevents Apache CXF from being able to shut down the actual port listener. If you programmatically remove the last endpoint published on a port, the listener remains running on the port, but only 404 (page not found) errors are served to subsequent client connections.
- Nillable elements do not work correctly if other attributes are present on the element. This is a bug in JAXB.
- Due to bug 6467808 in the Java 1.5_09 JDK, you must ensure that no namespace declarations are overwritten in your SOAP messages. If a namespace declaration is overwritten in a SOAP message your process will fail with the following
error message: ERROR: 'NAMESPACE_ERR: An attempt is made to create or change an object in a way which is incorrect with regard to namespaces.'
- Currently the JaxWsServiceFactoryBean requires you to explicitly set the BindingFactory to JaxWsSoapBindingInfoFactoryBean for the @SoapBinding annotation to work. Usage of the JAX-WS Endpoint should work regardless.
Whats not done yet?
There are many things we will be working on for the next version of CXF:
- WS-ReliableMessaging, WS-Security
- Improved tooling to support WSDL 2.0
- Support for more databindings including XFire's Aegis databinding, JiBX, and XMLBeans
- Asynchronous HTTP support
- Performance optimizations - CXF is quite fast now, but we know of several performance improvements to be done for the next version.
- JBI Binding Components
- Tuscany Support
- Geronimo Integration
- Improved Documentation
- See the CXF Roadmap for more information.
Upgrading from XFire
Currently, it is not recommended that all XFire users upgrade to CXF at this time. For more information, see the XFire Migration Guide.
Upgrading from Celtix
Currently it is not recommended that all Celtix users upgrade to CXF at this time. For more information, see the Celtix Migration Guide.