Hi William,

It works when I changed code as you suggested.
Thanks a lot.

Jackey

2008/11/21 Willem Jiang <[EMAIL PROTECTED]>

> Hi
>
> Oh, here is a thing when you invoke the bean method, the method's return
> value will be set into the exchange's out message,
> So you got the converter not found exception.
> That is a side effect of your get the <recipientList> with a bean
> invocation.
>
> You may change to use a processor to set message header for the
> recipienList to walk around this issue.
>
> <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
> " />
>             <processor ref="myProcessor"/>
>             <recipientList>
>                 <header>MyRecipientList</header>
>             </recipientList>
>         </route>
>     </camelContext>
>
> public class MyProcessor implements Processor {
>
>    public void process(Exchange exchange) throws Exception {
>        Message message = exchange.getIn();
>        message.setHeader("MyRecipientList", YOULIST);
>     }
>
> }
>
> Willem
>
>
> Jackey Ding wrote:
> > Hi william,
> >
> > Yes, I changed route method as Claus said. The error still happen.
> >
> > Claus,
> >
> > I am using camel 1.5.0.
> >
> >
> > 2008/11/21 Claus Ibsen <[EMAIL PROTECTED]>
> >
> >> 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