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

Reply via email to