Blueprint. I've done that a number of time. I may just continue using blueprint for that part. I've injected producerTemplates for that sort of thing in the past and then just route direct:foo to cxfrs what have you.
On Thu, Aug 25, 2016 at 11:56 AM, Joseph Kampf <joseph.ka...@gmail.com> wrote: > 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. > >