That works perfectly. Thanks!
On Mon, Jun 3, 2013 at 4:09 PM, Sergey Beryozkin <[email protected]>wrote: > Hi > > On 03/06/13 20:53, Todd Orr wrote: > >> I'm relatively new to Camel. I did research what I am attempting to do, >> but >> did not find much help. >> >> The goal is to take an existing standalone CXF rest service (with many >> service beans) and split it into multiple independent CXF rest services >> coordinated by Camel. >> >> As an initial step, I am attempting to front the existing service with >> Camel. So to be clear, at this stage, I only want to pass HTTP requests >> from Camel down to the CXF service. To this end I have run into multiple >> issues. I am currently unable to route the HTTP message received by Camel >> to the CXF service. >> >> My route: >> >> >> <route> >> <from >> uri="servlet:///rest?**servletName=CamelAPI&**matchOnUriPrefix=true" >> /> >> <to uri="ref:message-logger" /> >> <setBody><simple>**CamelHttpServletRequest</**simple></setBody> >> <to uri="ref:message-logger" /> >> <to uri="direct:api" /> >> </route> >> >> I have configured CXF using camel's transport factory using: >> >> <bean >> class="org.apache.camel.**component.cxf.transport.** >> CamelTransportFactory"> >> <property name="bus" ref="cxf" /> >> <property name="camelContext" ref="camelContext" /> >> <property name="checkException" value="true" /> >> <property name="transportIds"> >> <list> >> >> <value>http://cxf.apache.org/**transports/camel<http://cxf.apache.org/transports/camel> >> </value> >> </list> >> </property> >> </bean> >> >> This was required to get around some earlier issues I ran into. My CXF >> service is configured like: >> >> >> <jaxrs:server id="restService" address="direct:api"> >> <jaxrs:serviceBeans> >> ... >> >> Startup is fine. On attempting to hit the servlet via RESTClient I can see >> the message I passed in logged correctly. However, the CXF service cannot >> receive the message. The error is: >> >> No consumers available on endpoint: Endpoint[direct://api] to process: >> Exchange ... >> >> Any help is greatly appreciated. >> >> This is an interesting idea, to try to use a 'direct' URI scheme as > jaxrs server endpoint. I don't think it works right now, and I'm not sure > what has to be done yet, but definitely worth investigating... > In meantime, using Camel transport scheme will do, try something like this: > > <jaxrs:server id="hello_rest" address="camel://direct:** > HelloWorldRestServerEndpoint"> > <!-- usual declarations here --> > </jaxrs:server> > > <!-- Camel routes from addresses on the servlet to rest and jaxws > servers --> > <camelContext id="camelContext" xmlns="http://camel.apache.** > org/schema/spring <http://camel.apache.org/schema/spring>" trace="false"> > <route> > <from uri="servlet:///HelloWorld?**matchOnUriPrefix=true"/> > <to uri="direct:**HelloWorldRestServerEndpoint"/**> > </route> > </camelContext> > > > HTH, Sergey > >> T >> >> >
