...
In CXF you offer or consume a webservice by defining it´s its address. The first part of the address specifies the protocol to use. For example address="http://localhost:9000" in an endpoint configuration means your service will be offered using the http protocol on port 9000 of localhost. When you integrate Camel Tranport into CXF you get a new transport "camel". So you can specify address="camel://direct:MyEndpointName" to bind the CXF service address to a camel direct endpoint.
Technically speaking Camel transport for CXF is a component which implements the CXF transport API with the Camel core library. This allows you to easily use camel´s Camel's routing engine and integration patterns support smoothly together with your CXF services.
...
You can use the following snippet in your applicationcontext if you want to configure anything special. If you only want to activate the camel transport you do not have to do anything in your application context. As soon as you include the camel-cxf-transport jar (or camel-cxf.jar if your camel version is less than 2.7.x) in your app, cxf will scan the jar and load a CamelTransportFactory for you.
...
...
Integrating the Camel Transport in a programmatic way
Camel transport provides a setContext method that you could use to set the Camel context into the transport factory. If you want this factory take effect, you need to register the factory into the CXF bus. Here is a full example for you.
...
...
Configure the destination and conduit with Spring
...
The elements used to configure an Camel transport endpoint are defined in the namespace http://cxf.apache.org/transports/camel
. It is commonly referred to using the prefix camel
. In order to use the Camel transport configuration elements, you will need to add the lines shown below to the beans element of your endpoint's configuration file. In addition, you will need to add the configuration elements' namespace to the xsi:schemaLocation
attribute.
...
...
The destination
element
You configure an Camel transport server endpoint using the camel:destination
element and its children. The camel:destination
element takes a single attribute, name
, the that specifies the WSDL port element that corresponds to the endpoint. The value for the name
attribute takes the form portQName.camel-destination
. The example below shows the camel:destination
element that would be used to add configuration for an endpoint that was specified by the WSDL fragment <port binding="widgetSOAPBinding" name="widgetSOAPPort"widgetSOAPPort>>
if the endpoint's target namespace was http://widgets.widgetvendor.net
.
...
The camel:destination
element for Spring has a number of child elements that specify configuration information. They are described below.
...
The conduit
element
You configure an a Camel transport client using the camel:conduit
element and its children. The camel:conduit
element takes a single attribute, name
, that specifies the WSDL port element that corresponds to the endpoint. The value for the name
attribute takes the form portQName.camel-conduit
. For example, the code below shows the camel:conduit
element that would be used to add configuration for an endpoint that was specified by the WSDL fragment <port binding="widgetSOAPBinding" name="widgetSOAPPort"widgetSOAPPort>>
if the endpoint's target namespace was http://widgets.widgetvendor.net
.
...
The camel:conduit
element has a number of child elements that specify configuration information. They are described below.
...
From Camel 2.11.x, Camel Transport supports to be configured with Blueprint.
If you are using blueprint, you should use the the namespace http://cxf.apache.org/transports/camel/blueprint
and import the schema like the blow.
...
...
In blueprint camel:conduit
camel:destination
only has one camelContext camelContextId attribute, they doesn't support to specify the camel context in the camel destination.
...
...
Example Using Camel as a load balancer for CXF
This example show shows how to use the camel load balance balancing feature in CXF, and you . You need to load the configuration file in CXF and publish the endpoints on the address "camel://direct:EndpointA" and "camel://direct:EndpointB"
...
...
Complete Howto and Example for attaching Camel to CXF
...