Fuse 6 is no longer supported
As of February 2025, Red Hat Fuse 6 is no longer supported. If you are using Fuse 6, please upgrade to Red Hat build of Apache Camel.Chapter 8. Introduction to the Apache CXF Binding Component
Abstract
Endpoints being deployed using the Apache CXF binding component are packaged into a service unit. The service unit will container the WSDL document defining the endpoint's interface and a configuration file that sets-up the endpoint's runtime behavior.
Important
The Java Business Integration components of Red Hat JBoss Fuse are considered deprecated. You should consider migrating any JBI applications to OSGi.
Contents of a file component service unit Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
A service unit that configures the Apache CXF binding component will contain the following artifacts:
xbean.xml
- The
xbean.xml
file contains the XML configuration for the endpoint defined by the service unit. The contents of this file are the focus of this guide.NoteThe service unit can define more than one endpoint. - WSDL file
- The WSDL file defines the endpoint the interface exposes.
- Spring configuration file
- The Spring configuration file contains configuration for the Apache CXF runtime.
meta-inf/jbi.xml
- The
jbi.xml
file is the JBI descriptor for the service unit. Example 8.1, “JBI Descriptor for a Apache CXF Binding Component Service Unit” shows a JBI descriptor for a Apache CXF binding component service unit.Example 8.1. JBI Descriptor for a Apache CXF Binding Component Service Unit
<jbi xmlns="http://java.sun.com/xml/ns/jbi" version="1.0"> <services binding-component="false" /> </jbi>
<jbi xmlns="http://java.sun.com/xml/ns/jbi" version="1.0"> <services binding-component="false" /> </jbi>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
For information on using the Maven tooling to package endpoints into a JBI service unit see Appendix C, Using the Maven JBI Tooling.
OSGi Packaging Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
You can package Apache CXF binding component endpoints in an OSGi bundle. To do so you need to make two minor changes:
- you will need to include an OSGi bundle manifest in the
META-INF
folder of the bundle. - You need to add the following to your service unit's configuration file:
<bean class="org.apache.servicemix.common.osgi.EndpointExporter" />
<bean class="org.apache.servicemix.common.osgi.EndpointExporter" />
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Important
When you deploy Apache CXF binding component endpoints in an OSGi bundle, the resulting endpoints are deployed as a JBI service unit.
For more information on using the OSGi packaging see Appendix D, Using the Maven OSGi Tooling.
Namespace Copy linkLink copied to clipboard!
Copy linkLink copied to clipboard!
The elements used to configure Apache CXF binding component endpoints are defined in the
http://servicemix.apache.org/cxfbc/1.0
namespace. You will need to add a namespace declaration similar to the one in Example 8.2, “Namespace Declaration for Using Apache CXF Binding Component Endpoints” to your xbeans.xml
file's beans
element.
Example 8.2. Namespace Declaration for Using Apache CXF Binding Component Endpoints
<beans ... xmlns:cxfbc="http://servicemix.apache.org/cxfbc/1.0" ... > ... </beans>
<beans ...
xmlns:cxfbc="http://servicemix.apache.org/cxfbc/1.0"
... >
...
</beans>
In addition, you need to add the schema location to the Spring
beans
element's xsi:schemaLocation
as shown in Example 8.3, “Schema Location for Using Apache CXF Binding Component Endpoints”.
Example 8.3. Schema Location for Using Apache CXF Binding Component Endpoints