Hi -
JAXRSClientFactoryBean can be initialized with the headers too, so
please try that as a workaround.
CXF RS client component should be capable of checking Camel headers too,
will have a look when I get a chance
Sergey
On 18/12/15 09:35, VivekDhayalan wrote:
I want to define cxf:rsclient in Java dsl instead of xml based dsl.
I have the following defined in Java dsl.
from("direct:fromChannel")
.split()
.tokenizeXML("APIDataMessage").streaming()
.unmarshal(jaxb)
.convertBodyTo(com.testing.camel.MeasureEvent.class)
.setHeader("Content-Type", constant("application/json"))
.to("cxfrs://bean://toClient");
And I have the following for RSClient
@Bean
public SpringJAXRSClientFactoryBean toClient()
{
SpringJAXRSClientFactoryBean springJAXRSClientFactoryBean = new
SpringJAXRSClientFactoryBean();
String measurementEventURL = "http://" + connectorsConfig.getHost() +
":" + connectorsConfig.getPort() +
"/api/measurementEvents";
springJAXRSClientFactoryBean.setBeanId("toClient");
springJAXRSClientFactoryBean.setAddress(measurementEventURL);
springJAXRSClientFactoryBean.setServiceClass(com.testing.camel.MeasurementEventEndpoint.class);
springJAXRSClientFactoryBean.setLoggingFeatureEnabled(true);
springJAXRSClientFactoryBean.setSkipFaultLogging(true);
springJAXRSClientFactoryBean.setProvider(jsonProvider());
return springJAXRSClientFactoryBean;
}
And here is my jsonProvider definition:
JacksonJsonProvider jsonProvider()
{
return new JacksonJsonProvider();
}
And following is the stacktrace that I see while calling this route.
Stacktrace
---------------------------------------------------------------------------------------------------------------------------------------
org.apache.camel.component.cxf.CxfOperationException: JAXRS operation
failed invoking http://0.0.0.0:8089/monnitmysqltsdb?restletMethods=POST with
statusCode: 405
at
org.apache.camel.component.cxf.jaxrs.CxfRsProducer.populateCxfRsProducerException(CxfRsProducer.java:419)
at
org.apache.camel.component.cxf.jaxrs.CxfRsProducer.invokeHttpClient(CxfRsProducer.java:232)
at
org.apache.camel.component.cxf.jaxrs.CxfRsProducer.process(CxfRsProducer.java:89)
at
org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
at
org.apache.camel.processor.SendProcessor$2.doInAsyncProducer(SendProcessor.java:169)
at
org.apache.camel.impl.ProducerCache.doInAsyncProducer(ProducerCache.java:341)
at
org.apache.camel.processor.SendProcessor.process(SendProcessor.java:164)
at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)
at
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:460)
at
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:121)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:83)
at
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:460)
at
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)
at
org.apache.camel.processor.MulticastProcessor.doProcessSequential(MulticastProcessor.java:668)
at
org.apache.camel.processor.MulticastProcessor.doProcessSequential(MulticastProcessor.java:596)
at
org.apache.camel.processor.MulticastProcessor.process(MulticastProcessor.java:237)
at org.apache.camel.processor.Splitter.process(Splitter.java:104)
at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)
at
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:460)
at
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)
at
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)
at
org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:62)
at
org.apache.camel.processor.SendProcessor.process(SendProcessor.java:141)
at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)
at
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)
at
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:460)
at
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:109)
at
org.apache.camel.processor.MulticastProcessor.doProcessParallel(MulticastProcessor.java:814)
at
org.apache.camel.processor.MulticastProcessor.access$200(MulticastProcessor.java:84)
at
org.apache.camel.processor.MulticastProcessor$1.call(MulticastProcessor.java:314)
at
org.apache.camel.processor.MulticastProcessor$1.call(MulticastProcessor.java:299)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
--
View this message in context:
http://camel.465427.n5.nabble.com/How-to-configure-cxf-rsclient-bean-in-Java-dsl-tp5775242.html
Sent from the Camel - Users mailing list archive at Nabble.com.
--
Sergey Beryozkin
Talend Community Coders
http://coders.talend.com/