...
XFire Feature | CXF Analogue |
---|---|
Aegis Binding | |
Configurable Servlet | See the Servlet Transport page. |
Eclipse Plugin | Eclipse tooling supported via the SOA Tools projectWTP project and will be included as part of Helios. |
HTTP Transport | |
JMS Transport | |
JAX-WS/JSR-181 Annotation Support | In progress. Work is ongoing to ensure we pass the Ported and CXF passes the JAX-WS/JWS TCKs. |
JAXB | Ported. |
MTOM | Ported - Supports fully streaming attachments now. |
services.xml | Spring 2 XML will be supported for easy configuration. See the Configuration section. |
Spring: XFireClientFactoryBean | See the ClientProxyFactoryBean and JaxWsProxyFactoryBean. |
Spring: XFireExporter | Not ported as the *ServerFactoryBeans already enable this functionality. See below. |
Spring: ServiceBean | Completed. See ServerFactoryBean and JaxWsServerFactoryBean. |
WS-Addressing | CXF hsa has much better WS-Addressing support and its easier to use as well. |
WS-Security | |
XMLBeans | Not ported. Will be supported in CXF 2.1 Ported |
For more details on how to migrate:
...
There a couple small areas where we haven't replicated all of the XFire functionality yet. Namely the JiBX and XMLBeans databindings. These will be ported for CXF 2.1. databinding. The only other reason not to migrate to CXF that we see is a requirement for Java 1.4. Although, we would encourage users to take a look at using CXF on Java 1.4 via Retrotranslator.
Service Factories
XFire included serveral service factories for building services. CXF also includes service factories, but the concept has been improved somewhat to make them easier to use. CXF now includes the concept of ServerFactoryBeans which produce Servers, ClientFactoryBeans which produce Clients, and ClientProxyFactoryBeans which produce Client proxies.
...
Section | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...
Section | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...
CXF supports a much wider range of options for deploying your service over HTTP. XFire created a static mapping between the HTTP URL and the service name - i.e. a service named "HelloService" was accessible at http://localhost/services/HelloService. CXF on the other hand allows you to control the URL which your service is published on. This address is provided to CXF either through the setAddress() call on the ServerFactoryBeans or via your XML configuration.
...
Section | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
There are a few important things to note here on the differences:
- Many of these attributes are optional, such as the service name
- You don't need to specify a serviceClass if you are using JAX-WS as your service should be annotated with the @WebService.endpoitnInterface endpointInterface attribute.
- The equivalent of XFire Handlers is Interceptors inside CXF. They feature a much improved API!
...
Code Block | ||||
---|---|---|---|---|
| ||||
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:simple="http://cxf.apache.org/simple" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://cxf.apache.org/simple http://cxf.apache.org/schemas/simple.xsd"> <simple:server address="http://localhost/testService" serviceClass="org.example.TestService"> <simple:serviceBean> <bean class="org.example.TestServiceImpl"/> </simple:serviceBean> <simple:properties> <entry key="foo" value="bar"/> </jaxws:properties> <simple:inInterceptors> <bean class="org.example.ExampleInterceptor"/> </simple:inInterceptors> </simple:endpoint>server> </beans> |