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.