Hi

/Claus Ibsen
Apache Camel Committer
Blog: http://davsclaus.blogspot.com/



On Thu, Nov 20, 2008 at 3:25 PM, Willem Jiang <[EMAIL PROTECTED]> wrote:
> Did you change your bean's route method as Claus suggested ?
> @RecipientList
> public String[] route(Exchange exchange) {
>       System.out.println(exchange.getIn().getBody());
>       return new String[]{"jbi:endpoint:
> http://mm.service.integration.symphony/BillingService/BillingServicePort
> "};
> }
>
> Willem
Hi

Gert V. fixed something with this missing type converter within the
last month or so. What version of Camel are you using? Might be
worthwile to check the commit logs or give gertv a ping as he might
remeber what it was.

It was something with using servicemix and camel together.


>
> Jackey Ding wrote:
>> Hi,
>>
>> Here is my servicemix.xml, and I have pasted my router bean in preciously
>> post.
>>
>> <beans xmlns="http://www.springframework.org/schema/beans";
>>     xmlns:sm="http://servicemix.apache.org/config/1.0";
>>     xmlns:cxfse="http://servicemix.apache.org/cxfse/1.0";
>>     xmlns:cxfbc="http://servicemix.apache.org/cxfbc/1.0";
>>     xmlns:bean="http://servicemix.apache.org/bean/1.0";
>>     xmlns:camel="http://activemq.apache.org/camel/schema/spring";
>>     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>>     xmlns:bill="http://mm.service.integration.symphony";
>>     
>> xsi:schemaLocation="http://www.springframework.org/schema/beansclasspath:xmlschema/spring-beans-2.5.xsd
>>
>> http://servicemix.apache.org/config/1.0classpath:xmlschema/servicemix.xsd
>>
>> http://servicemix.apache.org/cxfse/1.0classpath:xmlschema/servicemix-cxf-se.xsd
>>
>> http://servicemix.apache.org/cxfbc/1.0classpath:xmlschema/servicemix-cxf-bc.xsd
>>
>> http://servicemix.apache.org/bean/1.0classpath:xmlschema/servicemix-bean.xsd
>>
>> http://activemq.apache.org/camel/schema/springclasspath:xmlschema/camel-spring.xsd";>
>>
>>     <sm:container id="jbiContainer" embedded="true">
>>         <sm:activationSpecs>
>>             <sm:activationSpec id="servicemix-camel"
>>                 service="bill:BillingServiceCamelRouter"
>>                 endpoint="BillingServicePort">
>>                 <sm:component>
>>                     <ref bean="jbi" />
>>                 </sm:component>
>>             </sm:activationSpec>
>>         </sm:activationSpecs>
>>         <sm:endpoints>
>>             <cxfse:endpoint id="BillingService" useJBIWrapper="false">
>>                 <cxfse:inFaultInterceptors>
>>                     <bean
>>
>> class="org.apache.cxf.interceptor.LoggingInInterceptor" />
>>                 </cxfse:inFaultInterceptors>
>>                 <cxfse:inInterceptors>
>>                     <bean
>>
>> class="org.apache.cxf.interceptor.LoggingInInterceptor" />
>>                 </cxfse:inInterceptors>
>>                 <cxfse:outFaultInterceptors>
>>                     <bean
>>
>> class="org.apache.cxf.interceptor.LoggingOutInterceptor" />
>>                 </cxfse:outFaultInterceptors>
>>                 <cxfse:outInterceptors>
>>                     <bean
>>
>> class="org.apache.cxf.interceptor.LoggingOutInterceptor" />
>>                 </cxfse:outInterceptors>
>>                 <cxfse:pojo>
>>                     <bean
>>
>> class="symphony.integration.service.mm.LppBillingServiceImpl" />
>>                 </cxfse:pojo>
>>             </cxfse:endpoint>
>>             <cxfbc:consumer
>>
>> wsdl="classpath:symphony/integration/service/mm/BillingService.wsdl"
>>
>> interfaceName="symphony.integration.service.mm.BillingService"
>>                 targetEndpoint="BillingServicePort"
>>                 targetService="bill:BillingServiceCamelRouter"
>>                 useJBIWrapper="false">
>>                 <cxfbc:inFaultInterceptors>
>>                     <bean
>>
>> class="org.apache.cxf.interceptor.LoggingInInterceptor" />
>>                 </cxfbc:inFaultInterceptors>
>>                 <cxfbc:inInterceptors>
>>                     <bean
>>
>> class="org.apache.cxf.interceptor.LoggingInInterceptor" />
>>                 </cxfbc:inInterceptors>
>>                 <cxfbc:outFaultInterceptors>
>>                     <bean
>>
>> class="org.apache.cxf.interceptor.LoggingOutInterceptor" />
>>                 </cxfbc:outFaultInterceptors>
>>                 <cxfbc:outInterceptors>
>>                     <bean
>>
>> class="org.apache.cxf.interceptor.LoggingOutInterceptor" />
>>                 </cxfbc:outInterceptors>
>>             </cxfbc:consumer>
>>         </sm:endpoints>
>>     </sm:container>
>>
>>     <bean id="jbi"
>>         class="org.apache.servicemix.camel.CamelJbiComponent" />
>>
>>     <bean id="router"
>>         class="symphony.integration.service.mm.BillingServiceRouter" />
>>
>>     <camelContext id="camelContext" useJmx="true"
>>         xmlns="http://activemq.apache.org/camel/schema/spring";>
>>         <route>
>>             <from
>>                 uri="jbi:endpoint:
>> http://mm.service.integration.symphony/BillingServiceCamelRouter/BillingServicePort";
>> />
>>             <recipientList>
>>                 <methodCall bean="router" method="route"/>
>>             </recipientList>
>>         </route>
>>     </camelContext>
>> </beans>
>>
>> Jackey
>>
>> 2008/11/20 Willem Jiang <[EMAIL PROTECTED]>
>>
>>> Can you show us your DSL ?
>>> I can't image how this string can be turned into a Source Object, may be
>>> you just put the recipientlist into the message body instead of setting
>>> it into the message header.
>>>
>>> Willem
>>>
>>> Jackey Ding wrote:
>>>> Hi,
>>>>
>>>> I traced error, the real serivce provider is return the correct message
>>> to
>>>> camel, but camel not pass the message to the client.
>>>> The exception is thrown at method DefaultTypeConverter.convertTo(Class<T>
>>>> type, Exchange exchange, Object value); because it could not find
>>> suitable
>>>> conversion. Here is the paramter value:
>>>>
>>>> type    Class<T> (javax.xml.transform.Source) (id=90)
>>>>
>>>> exchange    JbiExchange  (id=91)
>>>>     binding    JbiBinding  (id=97)
>>>>     context    SpringCamelContext  (id=100)
>>>>     exception    null
>>>>     exchangeId    null
>>>>     fault    null
>>>>     in    JbiMessage  (id=113)
>>>>     messageExchange    InOutImpl  (id=114)
>>>>     out    JbiMessage  (id=99)
>>>>     pattern    ExchangePattern  (id=116)
>>>>     properties    ConcurrentHashMap<K,V>  (id=118)
>>>>     unitOfWork    DefaultUnitOfWork  (id=121)
>>>>
>>>> value    [0]    "jbi:endpoint:
>>>> http://mm.service.integration.symphony/BillingService/BillingServicePort
>>> "
>>>>
>>>> jackey
>>>>
>>>> 2008/11/20 Jackey Ding <[EMAIL PROTECTED]>
>>>>
>>>>> BTW, I find the route method was executed 6 times.
>>>>>
>>>>> Jackey
>>>>>
>>>>> 2008/11/20 Jackey Ding <[EMAIL PROTECTED]>
>>>>>
>>>>> Hi,
>>>>>> I tried code you pasted, here is the message.
>>>>>>
>>>>>> 2008-11-20 19:53:48 org.apache.cxf.interceptor.LoggingInInterceptor
>>>>>> logging
>>>>>> infor: Inbound Message
>>>>>> ----------------------------
>>>>>> Encoding:
>>>>>> Headers:
>>>>>> Messages:
>>>>>> Message:
>>>>>>
>>>>>> Payload: <?xml version="1.0" encoding="UTF-8"?><soap:Envelope
>>> xmlns:soap="
>>>>>> http://schemas.xmlsoap.org/soap/envelope/
>>> "><soap:Body><ns1:getBillingCount
>>>>>> xmlns:ns1="http://mm.service.integration.symphony";><arg0
>>>>>> xmlns=""><beginRowIndex xmlns="">0</beginRowIndex><entityPage
>>>>>> xmlns=""><beginRowIndex xmlns="">0</beginRowIndex><rowSize
>>>>>> xmlns="">10</rowSize></entityPage><rowSize
>>> xmlns="">10</rowSize><billingNo
>>> xmlns="">KP0000000005</billingNo></arg0></ns1:getBillingCount></soap:Body></soap:Envelope>
>>>>>> --------------------------------------
>>>>>> 2008-11-20 19:53:48
>>>>>> org.apache.cxf.interceptor.LoggingOutInterceptor$LoggingCallback
>>> onClose
>>>>>> info: Outbound Message
>>>>>> ---------------------------
>>>>>> Encoding: UTF-8
>>>>>> Headers:
>>>>>> Messages:
>>>>>> Payload: <soap:Envelope xmlns:soap="
>>>>>> http://schemas.xmlsoap.org/soap/envelope/
>>> "><soap:Body><ns1:getBillingCountResponse
>>>>>> xmlns:ns1="http://mm.service.integration.symphony
>>>>>>
>>> "><return>1</return></ns1:getBillingCountResponse></soap:Body></soap:Envelope>
>>>>>> --------------------------------------
>>>>>> 2008-11-20 19:53:48 org.apache.camel.processor.Logger log
>>>>>> error: Failed delivery for exchangeId:
>>>>>> ID-mycomputer/1988-1227182024906/0-0. On delivery attempt: 0 caught:
>>>>>> org.apache.camel.language.bean.RuntimeBeanExpressionException: Failed
>>> to
>>>>>> invoke method: route on router due to:
>>>>>> org.apache.camel.NoTypeConversionAvailableException: No type converter
>>>>>> available to convert from type: class [Ljava.lang.String; to the
>>> required
>>>>>> type: javax.xml.transform.Source with value [Ljava.lang.String;@e8709d
>>>>>> org.apache.camel.language.bean.RuntimeBeanExpressionException: Failed
>>> to
>>>>>> invoke method: route on router due to:
>>>>>> org.apache.camel.NoTypeConversionAvailableException: No type converter
>>>>>> available to convert from type: class [Ljava.lang.String; to the
>>> required
>>>>>> type: javax.xml.transform.Source with value [Ljava.lang.String;@e8709d
>>>>>>     at
>>>>>>
>>> org.apache.camel.language.bean.BeanExpression.evaluate(BeanExpression.java:79)
>>>>>>     at
>>>>>> org.apache.camel.processor.RecipientList.process(RecipientList.java:58)
>>>>>>     at
>>>>>>
>>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:75)
>>>>>>     at
>>>>>>
>>> org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:172)
>>>>>>     at
>>>>>>
>>> org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:93)
>>>>>>     at
>>>>>>
>>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:63)
>>>>>>     at
>>>>>>
>>> org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:47)
>>>>>>     at
>>>>>>
>>> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:41)
>>>>>>     at
>>>>>>
>>> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:66)
>>>>>>     at
>>>>>>
>>> org.apache.servicemix.camel.CamelProviderEndpoint.handleActiveProviderExchange(CamelProviderEndpoint.java:115)
>>>>>>     at
>>>>>>
>>> org.apache.servicemix.camel.CamelProviderEndpoint.process(CamelProviderEndpoint.java:73)
>>>>>>     at
>>>>>>
>>> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:600)
>>>>>>     at
>>>>>>
>>> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:554)
>>>>>>     at
>>>>>>
>>> org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:510)
>>>>>>     at
>>>>>>
>>> org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)
>>>>>>     at
>>>>>>
>>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:620)
>>>>>>     at
>>>>>>
>>> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
>>>>>>     at
>>>>>>
>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
>>>>>>     at
>>>>>>
>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
>>>>>>     at
>>>>>>
>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
>>>>>>     at
>>>>>>
>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
>>>>>>     at java.lang.Thread.run(Thread.java:595)
>>>>>> Caused by: org.apache.camel.NoTypeConversionAvailableException: No type
>>>>>> converter available to convert from type: class [Ljava.lang.String; to
>>> the
>>>>>> required type: javax.xml.transform.Source with value
>>>>>> [Ljava.lang.String;@e8709d
>>>>>>     at
>>>>>>
>>> org.apache.camel.impl.converter.DefaultTypeConverter.convertTo(DefaultTypeConverter.java:117)
>>>>>>     at
>>>>>>
>>> org.apache.camel.util.ExchangeHelper.convertToType(ExchangeHelper.java:180)
>>>>>>     at
>>>>>>
>>> org.apache.servicemix.camel.JbiBinding.convertBodyToJbi(JbiBinding.java:61)
>>>>>>     at
>>> org.apache.servicemix.camel.JbiMessage.setBody(JbiMessage.java:159)
>>>>>>     at
>>>>>>
>>> org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:125)
>>>>>>     at
>>>>>>
>>> org.apache.camel.language.bean.BeanExpression.evaluate(BeanExpression.java:76)
>>>>>>     ... 21 more
>>>>>> [EMAIL PROTECTED]
>>>>>>
>>>>>> The message in red is system printout.
>>>>>>
>>>>>> BTW, I am using camel 1.5.0.
>>>>>>
>>>>>>
>>>>>> Jackey
>>>>>>
>>>>>> 2008/11/20 Claus Ibsen <[EMAIL PROTECTED]>
>>>>>>
>>>>>>> Hi Try with this
>>>>>>>
>>>>>>>>    @RecipientList
>>>>>>>>    public String[] route(Exchange exchange) {
>>>>>>>>        System.out.println(exchange.getIn().getBody());
>>>>>>>>        return new String[]{"jbi:endpoint:
>>>>>>>>
>>> http://mm.service.integration.symphony/BillingService/BillingServicePort
>>>>>>> "};
>>>>>>>>    }
>>>>>>> /Claus Ibsen
>>>>>>> Apache Camel Committer
>>>>>>> Blog: http://davsclaus.blogspot.com/
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Thu, Nov 20, 2008 at 9:34 AM, Jackey Ding <[EMAIL PROTECTED]>
>>>>>>> wrote:
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> Here is my bean.
>>>>>>>>
>>>>>>>> public class BillingServiceRouter{
>>>>>>>>
>>>>>>>>    @RecipientList
>>>>>>>>    public String[] route(String body) {
>>>>>>>>        System.out.println(body);
>>>>>>>>        return new String[]{"jbi:endpoint:
>>>>>>>>
>>> http://mm.service.integration.symphony/BillingService/BillingServicePort
>>>>>>> "};
>>>>>>>>    }
>>>>>>>> }
>>>>>>>>
>>>>>>>> Jackey
>>>>>>>>
>>>>>>>> 2008/11/20 Claus Ibsen <[EMAIL PROTECTED]>
>>>>>>>>
>>>>>>>>> Hi
>>>>>>>>>
>>>>>>>>> What does your bean look like?
>>>>>>>>>>                <methodCall bean="router" method="route"/>
>>>>>>>>> I think the issue is that the payload from servicemix is XML and
>>> Camel
>>>>>>>>> will try to find coerce the payload to the type you have defined in
>>>>>>>>> your bean.
>>>>>>>>>
>>>>>>>>> So you can change the signature to use Exchange as type then there
>>>>>>>>> shouldn't take any type conventions place.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> /Claus Ibsen
>>>>>>>>> Apache Camel Committer
>>>>>>>>> Blog: http://davsclaus.blogspot.com/
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Thu, Nov 20, 2008 at 9:11 AM, Jackey Ding <[EMAIL PROTECTED]
>>>>>>>>> wrote:
>>>>>>>>>> Hi,
>>>>>>>>>>
>>>>>>>>>> I want to wirte a bean dynamically determine what endpoints will be
>>>>>>>>> invoked
>>>>>>>>>> when a service is called. It seems that dynamic recipientlist can
>>>>>>> meet my
>>>>>>>>>> demand. I wrote a simple method just return a string as endpoint
>>>>>>> name,
>>>>>>>>> and
>>>>>>>>>> got the error message as below:
>>>>>>>>>>
>>>>>>>>>> info: Outbound Message
>>>>>>>>>> ---------------------------
>>>>>>>>>> Encoding: UTF-8
>>>>>>>>>> Headers:
>>>>>>>>>> Messages:
>>>>>>>>>> Payload: <soap:Envelope xmlns:soap="
>>>>>>>>>> http://schemas.xmlsoap.org/soap/envelope/
>>>>>>>>> "><soap:Body><ns1:getBillingCountResponse
>>>>>>>>>> xmlns:ns1="http://mm.service.integration.symphony
>>>>>>>>>>
>>> "><return>1</return></ns1:getBillingCountResponse></soap:Body></soap:Envelope>
>>>>>>>>>> --------------------------------------
>>>>>>>>>> 2008-11-20 15:36:36 org.apache.camel.processor.Logger log
>>>>>>>>>> error: Failed delivery for exchangeId:
>>>>>>>>> ID-mycomputer/3353-1227166593020/0-0.
>>>>>>>>>> On delivery attempt: 0 caught:
>>>>>>>>>> org.apache.camel.language.bean.RuntimeBeanExpressionException:
>>>>>>> Failed to
>>>>>>>>>> invoke method: route on router due to:
>>>>>>>>>> org.apache.camel.NoTypeConversionAvailableException: No type
>>>>>>> converter
>>>>>>>>>> available to convert from type: class [Ljava.lang.String; to the
>>>>>>> required
>>>>>>>>>> type: javax.xml.transform.Source with value
>>>>>>> [Ljava.lang.String;@1f3329a
>>>>>>>>>> org.apache.camel.language.bean.RuntimeBeanExpressionException:
>>>>>>> Failed to
>>>>>>>>>> invoke method: route on router due to:
>>>>>>>>>> org.apache.camel.NoTypeConversionAvailableException: No type
>>>>>>> converter
>>>>>>>>>> available to convert from type: class [Ljava.lang.String; to the
>>>>>>> required
>>>>>>>>>> type: javax.xml.transform.Source with value
>>>>>>> [Ljava.lang.String;@1f3329a
>>>>>>>>>>    at
>>>>>>>>>>
>>> org.apache.camel.language.bean.BeanExpression.evaluate(BeanExpression.java:79)
>>>>>>>>>>    at
>>>>>>>>>>
>>> org.apache.camel.processor.RecipientList.process(RecipientList.java:58)
>>>>>>>>>>    at
>>>>>>>>>>
>>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:75)
>>>>>>>>>>    at
>>>>>>>>>>
>>> org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:172)
>>>>>>>>>>    at
>>>>>>>>>>
>>> org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:93)
>>>>>>>>>>    at
>>>>>>>>>>
>>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:63)
>>>>>>>>>>    at
>>>>>>>>>>
>>> org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:47)
>>>>>>>>>>    at
>>>>>>>>>>
>>> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:41)
>>>>>>>>>>    at
>>>>>>>>>>
>>> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:66)
>>>>>>>>>>    at
>>>>>>>>>>
>>> org.apache.servicemix.camel.CamelProviderEndpoint.handleActiveProviderExchange(CamelProviderEndpoint.java:115)
>>>>>>>>>>    at
>>>>>>>>>>
>>> org.apache.servicemix.camel.CamelProviderEndpoint.process(CamelProviderEndpoint.java:73)
>>>>>>>>>>    at
>>>>>>>>>>
>>> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:600)
>>>>>>>>>>    at
>>>>>>>>>>
>>> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:554)
>>>>>>>>>>    at
>>>>>>>>>>
>>> org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:510)
>>>>>>>>>>    at
>>>>>>>>>>
>>> org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)
>>>>>>>>>>    at
>>>>>>>>>>
>>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:620)
>>>>>>>>>>    at
>>>>>>>>>>
>>> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
>>>>>>>>>>    at
>>>>>>>>>>
>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
>>>>>>>>>>    at
>>>>>>>>>>
>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
>>>>>>>>>>    at
>>>>>>>>>>
>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
>>>>>>>>>>    at
>>>>>>>>>>
>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
>>>>>>>>>>    at java.lang.Thread.run(Thread.java:595)
>>>>>>>>>> Caused by: org.apache.camel.NoTypeConversionAvailableException: No
>>>>>>> type
>>>>>>>>>> converter available to convert from type: class [Ljava.lang.String;
>>>>>>> to
>>>>>>>>> the
>>>>>>>>>> required type: javax.xml.transform.Source with value
>>>>>>>>>> [Ljava.lang.String;@1f3329a
>>>>>>>>>>    at
>>>>>>>>>>
>>> org.apache.camel.impl.converter.DefaultTypeConverter.convertTo(DefaultTypeConverter.java:117)
>>>>>>>>>>    at
>>>>>>>>>>
>>> org.apache.camel.util.ExchangeHelper.convertToType(ExchangeHelper.java:180)
>>>>>>>>>>    at
>>>>>>>>>>
>>> org.apache.servicemix.camel.JbiBinding.convertBodyToJbi(JbiBinding.java:61)
>>>>>>>>>>    at
>>>>>>> org.apache.servicemix.camel.JbiMessage.setBody(JbiMessage.java:159)
>>>>>>>>>>    at
>>>>>>>>>>
>>> org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:125)
>>>>>>>>>>    at
>>>>>>>>>>
>>> org.apache.camel.language.bean.BeanExpression.evaluate(BeanExpression.java:76)
>>>>>>>>>>    ... 21 more
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> my configuration is
>>>>>>>>>> <bean id="router"
>>>>>>>>>>        class="symphony.integration.service.mm.BillingServiceRouter"
>>>>>>> />
>>>>>>>>>>    <camelContext id="camelContext" useJmx="true"
>>>>>>>>>>        xmlns="http://activemq.apache.org/camel/schema/spring";>
>>>>>>>>>>        <route>
>>>>>>>>>>            <from
>>>>>>>>>>                uri="jbi:endpoint:
>>>>>>>>>>
>>> http://mm.service.integration.symphony/BillingServiceCamelRouter/BillingServicePort
>>>>>>>>> "
>>>>>>>>>> />
>>>>>>>>>>            <recipientList>
>>>>>>>>>>                <methodCall bean="router" method="route"/>
>>>>>>>>>>            </recipientList>
>>>>>>>>>>        </route>
>>>>>>>>>>    </camelContext>
>>>>>>>>>>
>>>>>>>>>> my bean, just return a string.
>>>>>>>>>> @RecipientList
>>>>>>>>>>    public String[] route(String body) {
>>>>>>>>>>        return new String[]{"jbi:endpoint:
>>>>>>>>>>
>>> http://mm.service.integration.symphony/BillingService/BillingServicePort
>>>>>>>>> "};
>>>>>>>>>>    }
>>>>>>>>>>
>>>>>>>>>> It's weird, when change config to point-to-point mode it works
>>> fine.
>>>>>>>>>>        <route>
>>>>>>>>>>            <from
>>>>>>>>>>                uri="jbi:endpoint:
>>>>>>>>>>
>>> http://mm.service.integration.symphony/BillingServiceCamelRouter/BillingServicePort
>>>>>>>>> "
>>>>>>>>>> />
>>>>>>>>>>            <to
>>>>>>>>>>                uri="jbi:endpoint:
>>>>>>>>>>
>>> http://mm.service.integration.symphony/BillingService/BillingServicePort
>>>>>>> "
>>>>>>>>> />
>>>>>>>>>>        </route>
>>>>>>>>>>
>>>>>>>>>> Thanks & best regards
>>>>>>>>>>
>>>
>>
>
>

Reply via email to