You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by Shaffin Bhanji <sh...@gmail.com> on 2011/10/04 21:54:22 UTC

CXF with Camel - Usecase

Hello All,

I am currently working on a design that requires hosting a Web-service
in ServiceMix that will provide a service to provision a user. This
requires the following:

a. Customer sends a SOAP request to provision a user
b. The service accepts the request and drops it into a JMS request
queue, and waits for a response from a local response queue
c. A camel route takes the request and sends it to a remote JMS bus
d. A remote camel route picks the request and using API's (custom
endpoint) creates a remote user
e. When a remote user is created, the API will write a response to a
remote response queue
f. A local consumer will then accept the response from a remote queue
and drops it into a local response queue
g. The service will read the response and convey that back to the calling client

Having said all that, we were hoping to take advantage of using a CXF
with Camel in our approach, and was hoping to find a resource or
sample code template to help us jump start the solution.

Thank you all for your feedback,

Shaffin.

Re: CXF with Camel - Usecase

Posted by Christian Schneider <ch...@die-schneider.net>.
Hi Shaffin,

sound like you need a combination of the jms component and the cxfendpoint.

See the examples from the camel distribution:
- camel-example-cxf-proxy

And the documentations:
- http://camel.apache.org/cxf.html
- http://camel.apache.org/jms.html

Basically your routes could look like this:

from("cxf:bean:reportIncident?dataFormat=MESSAGE")
.to("localjms:localqueue")

from("localjms:localqueue")
.to("remotejms:remotequeue")

You have to define two jms components either in spring xml or in java 
code. One with id localjms and the other with id remotejms and configure 
them for the respective jms providers.

You best start your project as a pure java project with a Main for easy 
testing. You can then adapt it to osgi in the second step. Another 
deployment option is to package the project as a war to deploy on a 
servlet container.

I did some tutorials about moving projects to Karaf:
- http://www.liquid-reality.de/display/liquid/Karaf+Tutorials

The tutorials do not yet cover camel and cxf but it is not difficult. If 
you use servicemix or the Talend Integration Factory then all is 
prepared for using cxf and camel. A pure Karaf container is currently 
not able to run cxf as you need to change the packages exported by the 
system bundle but the above projects already do that for you.

In the Talend Integration Factory examples we show how to package camel 
and cxf maven projects for usage in a Karaf container. See:
https://github.com/Talend/tif/tree/master/examples

Christian



Am 04.10.2011 21:54, schrieb Shaffin Bhanji:
> Hello All,
>
> I am currently working on a design that requires hosting a Web-service
> in ServiceMix that will provide a service to provision a user. This
> requires the following:
>
> a. Customer sends a SOAP request to provision a user
> b. The service accepts the request and drops it into a JMS request
> queue, and waits for a response from a local response queue
> c. A camel route takes the request and sends it to a remote JMS bus
> d. A remote camel route picks the request and using API's (custom
> endpoint) creates a remote user
> e. When a remote user is created, the API will write a response to a
> remote response queue
> f. A local consumer will then accept the response from a remote queue
> and drops it into a local response queue
> g. The service will read the response and convey that back to the calling client
>
> Having said all that, we were hoping to take advantage of using a CXF
> with Camel in our approach, and was hoping to find a resource or
> sample code template to help us jump start the solution.
>
> Thank you all for your feedback,
>
> Shaffin.
>


-- 
--
Christian Schneider
http://www.liquid-reality.de

Open Source Architect
Talend Application Integration Division http://www.talend.com