Gert,

i attached the servicemix logfile...

My first camel route looks like this:
                Namespaces ns = new Namespaces("msg", FULFILLMENT_MSG_NS);

                from("jbi:endpoint:"+ FULFILLMENT_JBI)
                .to("log:com.kdfs.fulfillment.camel.ChoiceFulfiller?level=INFO")
                        .choice()
                        .when().xpath("//msg:orderFormat/text() = 'FOO'", ns)
                                
.to("log:com.kdfs.fulfillment.routing.camel.xpath.to.foo?level=DEBUG")
                        
.to("jbi:endpoint:http://namespace.kdfs.com/fulfillment/foo/FooService/FooEndpoint";)
                        .when().xpath("//msg:orderFormat/text() = 'BAR'", ns)
                                
.to("log:com.kdfs.fulfillment.routing.camel.xpath.to.bar?level=DEBUG")
                        
.to("jbi:endpoint:http://namespace.kdfs.com/fulfillment/bar/BarService/BarEndpoint";)
                        .otherwise()
                                .to("seda:cleanup");

                from("seda:cleanup")
                .to("log:com.kdfs.fulfillment.camel.Cleanup?level=INFO");

and the second route:

        
from("jbi:endpoint:http://namespace.kdfs.com/fulfillment/bar/BarService/BarEndpoint";)
//                      .streamCaching()
                        .to("seda:bar-transform");
                
                from("seda:bar-transform")
                .to("log:com.kdfs.fulfillment.camel.BarTransform?level=INFO")
                        .to("jbi:endpoint:" + BAR_TRANSFORMER)
                        .to("seda:ot-transform");
....

Regards,
Ingo


Gert Vanthienen wrote:
> 
> Ingo,
> 
> What version of servicemix are you using?  With the exact version, I
> can take a look at the cause for the NPE in the first stacktrace.  For
> the second exception, that usually happens if you are handling
> exchanges asynchronously (like e.g. using the threads() in DSL or
> using an aggregator).  It means that the component is trying to answer
> an exchange that has already been answered (so the consuming component
> 'owns' the exchange again).
> 
> One thing that would help us troubleshoot this issue, is if you could
> provide us with a DEBUG log that contains the exchanges up to the
> moment where you start getting the exceptions.  This gives us an idea
> on what kind of data is being conveyed in the ESB and it should also
> show an exchange being answered from the camel route right before we
> get the exception.
> 
> Regards,
> 
> Gert Vanthienen
> ------------------------
> Open Source SOA: http://fusesource.com
> Blog: http://gertvanthienen.blogspot.com/
> 
> 
> 2009/12/14 devylon <[email protected]>:
>>
>> Hi,
>>
>> i'm struggling with camel and mep and home someone can me help or give me
>> a hint what i'm doing wrong. my scenario is the following:
>> - cxf-bc service unit
>> - cxf-se service unit
>> - camel service unit
>> -- routing the message to some bean service units
>>
>> the cxf-bc is defining a wsdl and sends the message to the cxf-se:
>>        <cxfbc:consumer
>> wsdl="classpath:META-INF/FulfillmentService_v1_0.wsdl"
>>                targetService="foo:FulfillmentService_v1_0"
>>                targetInterface="foo:FulfillmentService_v1_0" >
>>        </cxfbc:consumer>
>>
>> The cxf-se implements the webservice interface:
>>        <cxfse:endpoint useJBIWrapper="true" useSOAPEnvelope="true">
>>                <cxfse:pojo>
>>                        <bean
>> class="foo.ws.cxf.FulfillmentServiceEndpointV10" />
>>                </cxfse:pojo>
>>        </cxfse:endpoint>
>>
>> and in the implementation of the webserice i'm routing the message to the
>> bus:
>>                        InOut exchange = client.createInOutExchange();
>>                        exchange.setService(new
>> QName("http://ns1.foo.com/fulfillment/v1_0/FulfillmentService","FulfillmentService_v1_0_JBI";));
>>                        exchange.setInterfaceName(new
>> QName("http://ns1.foo.com/fulfillment/v1_0/FulfillmentService","FulfillmentService_v1_0_JBI/JBI";));
>>
>>                        NormalizedMessage message =
>> exchange.getInMessage();
>>                        message.setContent(new
>> StringSource(writer.getBuffer().toString()));
>>
>>                        client.send(exchange);
>>
>> My camel route is definded in a camel service unit:
>> ...
>> from("jbi:endpoint:http://ns1.foo.com/fulfillment/v1_0/FulfillmentService/FulfillmentService_v1_0_JBI/JBI)
>> .to("jbi:endpoint:http://ns1.foo.com/fulfillment/MyService/MyEndpoint";);
>>
>> The MySerice serivce assembly contains a bean-su and a camel-su:
>>
>> camel-su:
>> ...
>> from("jbi:endpoint:http://ns1.foo.com/fulfillment/MyService/MyEndpoint";)
>> .to("jbi:endpoint:http://ns1.foo.com/fulfillment/transform/MyService/MyEndpoint";)
>> .to("jbi:endpoint:http://ns1.foo.com/fulfillment/dosomething/MyService/MyEndpoint";)
>>
>> 1st bean-su:
>>    <bean:endpoint service="bar:MyService" endpoint="MyEndpoint"
>>        bean="#myEndpointImpl">
>>    </bean:endpoint>
>>
>> 2nd bean-su:
>>    <bean:endpoint service="doo:MyService" endpoint="MyEndpoint"
>>        bean="#myOtherEndpointImpl">
>>    </bean:endpoint>
>>
>>
>> The routing works until the message receives in the 1st bean-su.
>>
>> In the implementation i'm doing something likethis:
>>                                NormalizedMessage outMessage =
>> exchange.createMessage();
>>                                LOGGER.debug("outMessage: " + outMessage);
>>                                outMessage.setContent(new
>> StringSource(message));
>>                                exchange.setMessage(outMessage, "out");
>>                                channel.send(exchange);
>>
>> This seems to throw an error on the bus:
>>
>> jvm 1    | java.lang.NullPointerException
>> jvm 1    |      at
>> org.apache.servicemix.camel.CamelConsumerEndpoint.process(CamelConsumerEndpoint.java:68)
>> jvm 1    |      at
>> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
>> jvm 1    |      at
>> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:598)
>> jvm 1    |      at
>> org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)
>> jvm 1    |      at
>> org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)
>> jvm 1    |      at
>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:623)
>> jvm 1    |      at
>> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
>> jvm 1    |      at
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
>> jvm 1    |      at
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
>> jvm 1    |      at
>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
>> jvm 1    |      at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
>> jvm 1    |      at java.lang.Thread.run(Thread.java:636)
>>
>> and
>>
>> jvm 1    | java.lang.IllegalStateException: component is not owner
>> jvm 1    |      at
>> org.apache.servicemix.jbi.messaging.MessageExchangeImpl.setMessage(MessageExchangeImpl.java:338)
>> jvm 1    |      at
>> org.apache.servicemix.camel.JbiExchange.createMessage(JbiExchange.java:174)
>> jvm 1    |      at
>> org.apache.servicemix.camel.JbiExchange.createOutMessage(JbiExchange.java:150)
>> jvm 1    |      at
>> org.apache.servicemix.camel.JbiExchange.createOutMessage(JbiExchange.java:37)
>> jvm 1    |      at
>> org.apache.camel.impl.DefaultExchange.getOut(DefaultExchange.java:213)
>> jvm 1    |      at
>> org.apache.servicemix.camel.JbiExchange.getOut(JbiExchange.java:71)
>> jvm 1    |      at
>> org.apache.servicemix.camel.JbiExchange.getOut(JbiExchange.java:37)
>> jvm 1    |      at
>> org.apache.camel.impl.DefaultExchange.getOut(DefaultExchange.java:208)
>> jvm 1    |      at
>> org.apache.servicemix.camel.JbiExchange.getOut(JbiExchange.java:66)
>> jvm 1    |      at
>> org.apache.servicemix.camel.JbiExchange.getOut(JbiExchange.java:37)
>> jvm 1    |      at
>> org.apache.servicemix.camel.CamelConsumerEndpoint.process(CamelConsumerEndpoint.java:68)
>> jvm 1    |      at
>> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
>> jvm 1    |      at
>> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:598)
>> jvm 1    |      at
>> org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)
>> jvm 1    |      at
>> org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)
>> jvm 1    |      at
>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:623)
>> jvm 1    |      at
>> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
>> jvm 1    |      at
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
>> jvm 1    |      at
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
>> jvm 1    |      at
>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
>> jvm 1    |      at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
>> jvm 1    |      at java.lang.Thread.run(Thread.java:636)
>>
>> Hope someone can help me ?!?
>>
>> -- Ingo
>>
>>
>> --
>> View this message in context:
>> http://old.nabble.com/cxf-se---%3E-camel---%3E-message-exchange-problems-InOut-tp26775867p26775867.html
>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>
>>
> 
> 
> -----
> ---
> Gert Vanthienen
> http://gertvanthienen.blogspot.com
> 
http://old.nabble.com/file/p26778348/servicemix.log servicemix.log 
-- 
View this message in context: 
http://old.nabble.com/cxf-se---%3E-camel---%3E-message-exchange-problems-InOut-tp26775867p26778348.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Reply via email to