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