Hi,
Here is the setup i have
CXF Consumer -> Dynamic Router -> Transformer -> CXF Producer -> Transformer
The Consumer is a web service so i receive <REQ>....</REQ> and have to
send <RES>...</RES> back.
The dynamic router is looking at the content of the request and sends to
a different router. Which has a Transformer to convert the request to
the format the producer is expecting.
After i get the response from the CXF Producer, I am transforming the
object to <RES>...</RES> type. But, i am getting a weird issue... Here
are the supporting files and the exception.
from("cxf:bean:MyHttpConsumerEP").
convertBodyTo(IntegrationServiceRequest.class).
log(LoggingLevel.INFO, "${in.body.metaData.serviceName}").
dynamicRouter(bean(IntegrationLevelRouting.class, "guideMe"));
public String guideMe(IntegrationServiceRequest request) {
if(request != null &&
request.getMetaData() != null &&
!"".equals(request.getMetaData().trim())) {
return "direct:" + request.getMetaData().trim();
}
return null;
}
from("direct:test").
beanRef("metaDataTransform", "transformIncomming").
to("cxf:bean:ThirdPartyServiceEP").
beanRef("responseTransformer", "finalStepBeforeSendingBack").
//I Convert to IntegrationServiceResponse type
log("${body}");
Here is the error i am getting
05:38:27,651 | ERROR | ault-workqueue-1 |
DefaultErrorHandler | 92 - org.apache.camel.camel-core -
2.8.3 | Failed delivery for exchangeId:
ID-hidalgo-33028-1327213718217-23-1. Exhausted after delivery attempt: 1
caught: org.apache.camel.CamelExecutionException: Exception occurred
during execution on the exchange: Exchange[Message:
com.test.ei.gateway.http.IntegrationServiceResponse@bb7207]
org.apache.camel.CamelExecutionException: Exception occurred during
execution on the exchange: Exchange[Message:
com.test.ei.gateway.http.IntegrationServiceResponse@bb7207]
at
org.apache.camel.util.ObjectHelper.wrapCamelExecutionException(ObjectHelper.java:1180)[92:org.apache.camel.camel-core:2.8.3]
at
org.apache.camel.builder.ExpressionBuilder$33.evaluate(ExpressionBuilder.java:814)[92:org.apache.camel.camel-core:2.8.3]
at
org.apache.camel.impl.ExpressionAdapter.evaluate(ExpressionAdapter.java:36)[92:org.apache.camel.camel-core:2.8.3]
at
org.apache.camel.component.bean.MethodInfo$2.evaluate(MethodInfo.java:371)[92:org.apache.camel.camel-core:2.8.3]
at
org.apache.camel.component.bean.MethodInfo.createMethodInvocation(MethodInfo.java:204)[92:org.apache.camel.camel-core:2.8.3]
at
org.apache.camel.component.bean.BeanInfo.createInvocation(BeanInfo.java:204)[92:org.apache.camel.camel-core:2.8.3]
at
org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:151)[92:org.apache.camel.camel-core:2.8.3]
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:104)[92:org.apache.camel.camel-core:2.8.3]
at
org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:74)[92:org.apache.camel.camel-core:2.8.3]
at
org.apache.camel.language.bean.BeanExpression$InvokeProcessor.process(BeanExpression.java:162)[92:org.apache.camel.camel-core:2.8.3]
at
org.apache.camel.language.bean.BeanExpression.evaluate(BeanExpression.java:115)[92:org.apache.camel.camel-core:2.8.3]
at
org.apache.camel.language.bean.BeanExpression.evaluate(BeanExpression.java:124)[92:org.apache.camel.camel-core:2.8.3]
at
org.apache.camel.builder.ValueBuilder.evaluate(ValueBuilder.java:41)[92:org.apache.camel.camel-core:2.8.3]
at
org.apache.camel.processor.DynamicRouter$DynamicRoutingSlipIterator.hasNext(DynamicRouter.java:67)[92:org.apache.camel.camel-core:2.8.3]
at
org.apache.camel.processor.RoutingSlip$2$1.done(RoutingSlip.java:282)[92:org.apache.camel.camel-core:2.8.3]
at
org.apache.camel.management.InstrumentationProcessor$1.done(InstrumentationProcessor.java:78)[92:org.apache.camel.camel-core:2.8.3]
at
org.apache.camel.processor.Pipeline$1.done(Pipeline.java:143)[92:org.apache.camel.camel-core:2.8.3]
at
org.apache.camel.processor.DefaultChannel$1.done(DefaultChannel.java:317)[92:org.apache.camel.camel-core:2.8.3]
at
org.apache.camel.processor.RedeliveryErrorHandler$1.done(RedeliveryErrorHandler.java:330)[92:org.apache.camel.camel-core:2.8.3]
at
org.apache.camel.management.InstrumentationProcessor$1.done(InstrumentationProcessor.java:78)[92:org.apache.camel.camel-core:2.8.3]
at
org.apache.camel.impl.ProducerCache$1.done(ProducerCache.java:307)[92:org.apache.camel.camel-core:2.8.3]
at
org.apache.camel.processor.SendProcessor$2$1.done(SendProcessor.java:119)[92:org.apache.camel.camel-core:2.8.3]
at
org.apache.camel.component.cxf.CxfClientCallback.handleResponse(CxfClientCallback.java:62)[152:org.apache.camel.camel-cxf:2.8.3]
at
org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:818)[138:org.apache.cxf.bundle:2.4.4]
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1626)[138:org.apache.cxf.bundle:2.4.4]
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream$1.run(HTTPConduit.java:1498)[138:org.apache.cxf.bundle:2.4.4]
at
org.apache.cxf.workqueue.AutomaticWorkQueueImpl$2.run(AutomaticWorkQueueImpl.java:353)[138:org.apache.cxf.bundle:2.4.4]
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)[:1.6.0_30]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)[:1.6.0_30]
at java.lang.Thread.run(Thread.java:662)[:1.6.0_30]
Caused by: org.apache.camel.InvalidPayloadException: No body available
of type: com.test.ei.gateway.http.IntegrationServiceRequest but has
value: com.test.ei.gateway.http.IntegrationServiceResponse@bb7207 of
type: com.test.ei.gateway.http.IntegrationServiceResponse on: Message:
com.test.ei.gateway.http.IntegrationServiceResponse@bb7207. Caused by:
No type converter available to convert from type:
com.test.ei.gateway.http.IntegrationServiceResponse to the required
type: com.test.ei.gateway.http.IntegrationServiceRequest with value
com.test.ei.gateway.http.IntegrationServiceResponse@bb7207.
Exchange[Message:
com.test.ei.gateway.http.IntegrationServiceResponse@bb7207]. Caused by:
[org.apache.camel.NoTypeConversionAvailableException - No type converter
available to convert from type:
com.test.ei.gateway.http.IntegrationServiceResponse to the required
type: com.test.ei.gateway.http.IntegrationServiceRequest with value
com.test.ei.gateway.http.IntegrationServiceResponse@bb7207]
at
org.apache.camel.impl.MessageSupport.getMandatoryBody(MessageSupport.java:102)[92:org.apache.camel.camel-core:2.8.3]
at
org.apache.camel.builder.ExpressionBuilder$33.evaluate(ExpressionBuilder.java:812)[92:org.apache.camel.camel-core:2.8.3]
... 28 more
Caused by: org.apache.camel.NoTypeConversionAvailableException: No type
converter available to convert from type:
com.test.ei.gateway.http.IntegrationServiceResponse to the required
type: com.test.ei.gateway.http.IntegrationServiceRequest with value
com.test.ei.gateway.http.IntegrationServiceResponse@bb7207
at
org.apache.camel.impl.converter.BaseTypeConverterRegistry.mandatoryConvertTo(BaseTypeConverterRegistry.java:144)[92:org.apache.camel.camel-core:2.8.3]
at
org.apache.camel.core.osgi.OsgiTypeConverter.mandatoryConvertTo(OsgiTypeConverter.java:110)[153:org.apache.camel.camel-blueprint:2.8.3]
at
org.apache.camel.impl.MessageSupport.getMandatoryBody(MessageSupport.java:100)[92:org.apache.camel.camel-core:2.8.3]
... 29 more
Any advice????
Thanks,
Sudhir