You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Alexandros Karypidis <ak...@yahoo.gr> on 2009/12/22 09:47:46 UTC

Newbie: CXF _client_ transport

Hello,

I have some SOAP messages inside a JMS queue. They are in XML format as
SOAP envelopes (i.e. if I had a CXF client endpoint using the JAX-WS
frontend, I would use the Dispatch<Source> interface to transmit the
messages).

Up until now, I was using the "camel-http" module to deliver the
messages to a web service provider located on a remote machine, with a
configuration that looks like this:

<beans
    xmlns:camel-cfg="http://camel.apache.org/schema/spring"
    xmlns:camel-cxf="http://camel.apache.org/schema/cxf"
....
    <camel-cfg:camelContext id="camelContext" trace="true" >
        <camel-cfg:route>
            <camel-cfg:from uri="jms:queue:some-Queue" />
!!            <camel-cfg:to
uri="http://somehost:8288/app/services/SomeProvider" />
        </camel-cfg:route>
    </camel-cfg:camelContext>
....

A requirement has come up to deliver these messages using
WS-ReliableMessaging. Therefore I can't use the http connector anymore.
I need to set up a CXF client endpoint and have the SOAP messages leave
through the client stack, so that WS-RM processing can occur.

I have used the CXF module to include local "provider" endpoints
(uri="cxf:bean:...") but now I need to route to a "client" endpoint. How
would I go about doing that?

Thank you in advance


Re: Newbie: CXF _client_ transport

Posted by Willem Jiang <wi...@gmail.com>.
Hi,

As you already get a SOAP message from he JMS queue, it is not easy to 
just add the WS-RM SOAP header information directly from camel-cxf 
endpoint or camel-http endpoint.

Maybe you can consider to pass the message into a bean method[1], in 
that method you can call use CXF client to call Dispatch API.

[1]http://camel.apache.org/bean-binding.html

Willem


Alexandros Karypidis wrote:
> Hello,
> 
> I have some SOAP messages inside a JMS queue. They are in XML format as
> SOAP envelopes (i.e. if I had a CXF client endpoint using the JAX-WS
> frontend, I would use the Dispatch<Source> interface to transmit the
> messages).
> 
> Up until now, I was using the "camel-http" module to deliver the
> messages to a web service provider located on a remote machine, with a
> configuration that looks like this:
> 
> <beans
>     xmlns:camel-cfg="http://camel.apache.org/schema/spring"
>     xmlns:camel-cxf="http://camel.apache.org/schema/cxf"
> ....
>     <camel-cfg:camelContext id="camelContext" trace="true" >
>         <camel-cfg:route>
>             <camel-cfg:from uri="jms:queue:some-Queue" />
> !!            <camel-cfg:to
> uri="http://somehost:8288/app/services/SomeProvider" />
>         </camel-cfg:route>
>     </camel-cfg:camelContext>
> ....
> 
> A requirement has come up to deliver these messages using
> WS-ReliableMessaging. Therefore I can't use the http connector anymore.
> I need to set up a CXF client endpoint and have the SOAP messages leave
> through the client stack, so that WS-RM processing can occur.
> 
> I have used the CXF module to include local "provider" endpoints
> (uri="cxf:bean:...") but now I need to route to a "client" endpoint. How
> would I go about doing that?
> 
> Thank you in advance
> 
>