Hi
On 25/07/12 20:00, bitter geek wrote:
Hi Sergey,

I'm quite new to Camel, still trying to get my head around a few concepts.


Well, even though a CXFRS component has been around for few years now, I haven't had any contributions done, very minor ones, it really works thanks to all the work from Willem. Also, I've had a very limited exposure to working with Camel recently - I look forward to working with it more but to be honest I have to catch up myself too

How do you create a CXFR producer? Or for that matter, how do you
specify what type of producer to create?
This is FAQ, please review the tutorials/books. I believe you typically start from something, say from "direct:something", if the producer is at the top of the route, and they you say from("direct:something").to("cxfrs://somebeanOrsomeaddres"), etc

Does this have anything to do with the header
CxfConstants.CAMEL_CXF_RS_USING_HTTP_API as shown below?

AFAIK, CxfConstants.CAMEL_CXF_RS_USING_HTTP_API is typically redundant
given it's a default value. It's a CXFRS-specific configuration property so it does not affect the way producers are picked up

Cheers, Sergey

Thanks!

Exchange exchange = template.send("direct://proxy", new Processor() {
     public void process(Exchange exchange) throws Exception {
         exchange.setPattern(ExchangePattern.InOut);
         Message inMessage = exchange.getIn();
         setupDestinationURL(inMessage);
         // set the operation name
         inMessage.setHeader(CxfConstants.OPERATION_NAME, "getCustomer");
         // using the proxy client API
         inMessage.setHeader(CxfConstants.CAMEL_CXF_RS_USING_HTTP_API,
Boolean.FALSE);
         // set a customer header
         inMessage.setHeader("key", "value");
         // set the parameters , if you just have one parameter
         // camel will put this object into an Object[] itself
         inMessage.setBody("123");
     }
});

On 7/25/12, Sergey Beryozkin<[email protected]>  wrote:
On 25/07/12 09:30, bitter geek wrote:
Hi Sergey,

Can you elaborate on how to use CXF RS endpoint without using the
producer?


The CXFRS producer is a component built on top of the CXF RS client
code, however you do not have to use it in order to talk to a RS service
given the way that service is implemented is not important (could be
CXFRS on the other end or could be a PHP-based web app),
Here are some links:

http://camel.apache.org/restlet.html
http://camel.apache.org/jetty.html
http://camel.apache.org/http.html

Try one of those (I haven't tried). In meantime we'll work on getting
the CXFRS client component thread-safe

Sergey

You help is much appreciated.

Thanks,

Bing

On 7/24/12, Sergey Beryozkin<[email protected]>   wrote:
I lost your private email,

the CXF RS endpoint is safe, only the producer is not right now

Cheers, Sergey

On 24/07/12 15:00, Sergey Beryozkin wrote:
Hi
On 24/07/12 14:52, bitter geek wrote:
Hi All,

I'm a bit confused with the sample code for creating rest endpoint.

I do not have access to the rest service class but only want to create
a rest endpoint to use with camel.

Do I only need to create rsClient tag? If so, what class do I put
there for serviceClass? Why does it need a serviceClass if this
endpoint is just used to make an http request?

I believe this option is there to make a proxy based invocation, for
the
produce/consumes types be derived from specific operations available on
the service class.

However, the cxf rs producer is not thread safe right now.
So I'd recommend you try one of the other Camel HTTP components which
can make outbound calls till we get it fixed (http, jetty, etc - I'm
assuming they are thread-safe on the client side), or please experiment
with embedding direct thread-safe cxf jaxrs/web client references into
the root

Sergey

In addition, how do I get hold of this endpoint in Java?

Thanks a lot for your help!

Bing

/////////////////////////////////////////////////////
<!-- Defined the server endpoint to create the cxf-rs consumer -->
<cxf:rsServer id="rsServer"
address="http://localhost:${CXFTestSupport.port1}/CxfRsRouterTest/route";
serviceClass="org.apache.camel.component.cxf.jaxrs.testbean.CustomerService"

loggingFeatureEnabled="true" loggingSizeLimit="20"/>

<!-- Defined the client endpoint to create the cxf-rs consumer -->
<cxf:rsClient id="rsClient"
address="http://localhost:${CXFTestSupport.port2}/CxfRsRouterTest/rest";
serviceClass="org.apache.camel.component.cxf.jaxrs.testbean.CustomerService"

loggingFeatureEnabled="true" />




--
Sergey Beryozkin

Talend Community Coders
http://coders.talend.com/

Blog: http://sberyozkin.blogspot.com



--
Sergey Beryozkin

Talend Community Coders
http://coders.talend.com/

Blog: http://sberyozkin.blogspot.com

Reply via email to