So what I think you are asking is how do you create a JaxRS client URI without 
using Spring to create a rsClient?

Take a look at the cxfrs Component documentation. 
http://camel.apache.org/cxfrs.html  Check out the section "How to invoke the 
REST service through camel-cxfrs producer"


Btw,  we use the Java DSL, but still use spring to construct our CXF beans.  We 
inject the bean URI into our route builders.  

Are you trying to use Camel without Spring or Blueprint? 






On 8/18/16, 7:03 PM, "Brad Johnson" <brad.john...@mediadriver.com> wrote:

>Most of the switch over from using XML route builders to Java route
>builders is fairly painless and straightforward and the new CDI is a
>pleasure to work with.  But there are certain aspects that I'm not quite
>familiar with like how to do the same thing as this in the Java DSL,
>
><!-- Defined the client endpoint to create the cxf-rs consumer -->
>  <cxf:rsClient id="rsClient" address="http://localhost: <http://localhost/>
>${CXFTestSupport.port2}/CxfRsRouterTest/rest"
>
>serviceClass="org.apache.camel.component.cxf.jaxrs.testbean.CustomerService"
>    loggingFeatureEnabled="true" skipFaultLogging="true">
>    <cxf:providers>
>       <ref bean="jsonProvider"/>
>    </cxf:providers>
>  </cxf:rsClient>
>
>  <!-- The camel route context -->
>  <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring";>
>    <route>
>       <!-- Just need to ignoreDeleteMethodMessageBody -->
>       <from uri="cxfrs://bean://rsServer"/>
>       <to uri="log:body?level=INFO"/>
>       <to uri="cxfrs://bean://rsClient?ignoreDeleteMethodMessageBody=true
>"/>
>    </route>
>  </camelContext>
>
>
>If I have an interface like this:
>
>@Path("/api")
>public interface InventoryClient {
>
>  @GET
>  @Path("/inventory_transactions/{id}")
>  @Consumes(MediaType.TEXT_XML)
>  InventoryTransaction getInventory(@PathParam("id") Integer id);
>
>
>I can easily create a Java bean and use JAXRSClientFactory to create the
>client and use it or even use a CDI Producer to create it for injection.
>The only issue then is the multi-threading and how that might be handled
>and then doing things like calling reset on the client after an invocation.
>While I can do it it seems like I should be able to simply set up a route:
>
>from("direct:inventory").to("cxrs://bean//inventoryClient")
>
>in a route builder but obviously that's predicated on setting up the
>client. How does that setup translate?
>
>  <cxf:rsClient id="inventoryClient" address="https:// <http://localhost/>
>remoteURI"
>    serviceClass="foo.InventoryClient"
>
>
>I'd rather let Camel handle the underlying issues of resource management
>than do all that myself.

Reply via email to