如何在JavaDSL中配置CXFSclientbean?
我想在JavaDSL中定义cxf:rsclient,而不是基于xml的dsl。 我在JavaDSL中定义了以下内容如何在JavaDSL中配置CXFSclientbean?,java,spring-boot,apache-camel,cxf,Java,Spring Boot,Apache Camel,Cxf,我想在JavaDSL中定义cxf:rsclient,而不是基于xml的dsl。 我在JavaDSL中定义了以下内容 from("direct:fromChannel") .split() .tokenizeXML("APIDataMessage").streaming() .unmarshal(jaxb) .convertBodyTo(com.testing.camel.MeasureEvent.class)
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");
对于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;
}
下面是我的jsonProvider定义:
JacksonJsonProvider jsonProvider()
{
return new JacksonJsonProvider();
}
下面是调用此路由时看到的堆栈跟踪
堆栈跟踪
上面的代码工作得很好,但是,我的坏消息是,我在配置类中有一些错误。我已经在git@中签入了代码,如果你愿意,请拥有一个战利品。
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)