Solved! Has been my fault, the error was generated cause the wiretap was invoked also by another eip havin a robost-in-only mep, before the static routing slip invocation.
Sorry for my mistake and thanks again for your help dellekappa wrote: > > > bvkeirsb wrote: >> >> The EIP wiretap doesn't support InOut, only InOnly/RobustInOnly I >> believe (going from memory here). You won't be able to use the wiretap >> as an InOut. >> > > Thanks for answer. > I guess it should support the in-out mep, as I can read in documentation: > > A WireTap component can be used to forward a copy of the input message to > a listener in a proxy fashion. > This component implements the WireTap pattern. > It can handle all four standard MEPs, but will only send an In-Only MEP to > the listener. > The originating service must be configured to send messages to the WireTap > directly. > In the case of an In-Out MEP, this means that the WireTap needs to be > configured to send the exchange along to the destination service. > > Yes, your workaround is valid, but anyway I would know if this could be an > issue, for future implementations. > > Thanks > > > bvkeirsb wrote: >> >> Maybe you'd want to wrap your echo endpoint into a pipeline? >> >> Wiretap (inonly) --> pipeline (inonly --> inout - this would be your >> echo, or potentially a static routing slip or so --> inonly) --> final >> endpoint (inonly) >> >> Bart Vankeirsbilck >> -----Original Message----- >> From: dellekappa [mailto:[EMAIL PROTECTED] >> Sent: Monday, November 19, 2007 10:57 AM >> To: [email protected] >> Subject: using wiretap inside static routing slip flow >> >> >> Hi, >> I'm trying to configure an eip wiretap inside a static routing slip >> flow. >> The wiretap is not the last endpoint of static routing slip flow, so I >> build >> an "echo" endpoint (servicemix-bean), has its target-exchange, that >> simply >> sends back the message received, in order to let the wiretap using an >> in-out >> mep. >> My configuration is as follow: >> >> <eip:static-routing-slip service="tns:Service" endpoint="flow-routing"> >> <eip:targets> >> <eip:exchange-target service="tns:Service" >> endpoint="first_endpoint" /> >> <eip:exchange-target service="tns:Service" >> endpoint="trace_endpoint" /> >> <eip:exchange-target service="tns:Anagrafica" >> endpoint="last_endpoint" /> >> </eip:targets> >> </eip:static-routing-slip> >> >> <eip:wire-tap service="tns:Service" endpoint="trace-endpoint"> >> <eip:target> >> <eip:exchange-target service="tns:Service" >> endpoint="echo-endpoint"/> >> </eip:target> >> <eip:inListener> >> <eip:exchange-target service="tns:Service" endpoint="trace-queue" >> /> >> </eip:inListener> >> </eip:wire-tap> >> >> and this is the code inside the echo component: >> >> public class MessageEchoBean implements MessageExchangeListener { >> >> @Resource >> private DeliveryChannel channel; >> >> public void onMessageExchange(MessageExchange exchange) throws >> MessagingException { >> if (exchange.getStatus() == ExchangeStatus.ACTIVE) { >> MessageUtil.transferInToOut(exchange, exchange); >> channel.send(exchange); >> } >> } >> >> but I get thi error at runtime: >> >> ERROR - BeanComponent - Error processing exchange >> RobustInOnly[ >> id: ID:10.2.132.34-1165892ac50-8:2 >> status: Active >> role: provider >> service: {http://myorganization.namespace}Service >> endpoint: echo-endpoint >> in: mymessagexxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx >> ] >> javax.jbi.messaging.MessagingException: Out not supported >> at >> org.apache.servicemix.jbi.messaging.MessageExchangeImpl.setMessage(Messa >> geExchangeImpl.java:357) >> at >> org.apache.servicemix.jbi.util.MessageUtil.transferTo(MessageUtil.java:1 >> 21) >> at >> org.apache.servicemix.jbi.util.MessageUtil.transferToOut(MessageUtil.jav >> a:107) >> at >> org.apache.servicemix.jbi.util.MessageUtil.transferInToOut(MessageUtil.j >> ava:103) >> at >> codin.sismed.coop.util.MessageEchoBean.onMessageExchange(MessageEchoBean >> .java:21) >> at >> org.apache.servicemix.bean.BeanEndpoint.onProviderExchange(BeanEndpoint. >> java:224) >> at >> org.apache.servicemix.bean.BeanEndpoint.process(BeanEndpoint.java:200) >> at >> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeC >> ycle.java:538) >> at >> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBas >> eLifeCycle.java:490) >> at >> org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCyc >> le.java:46) >> at >> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(D >> eliveryChannelImpl.java:610) >> at >> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.j >> ava:170) >> at >> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java >> :167) >> at >> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:1 >> 34) >> at >> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecuto >> r.java:650) >> at >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.ja >> va:675) >> at java.lang.Thread.run(Thread.java:595) >> >> It seems that the wiretap sends a Robust-In-Only exchange to the >> BeanComponent. >> As I understand, all the components inside a static rouintg slip should >> use >> an in-out mep, and >> looking at the documentation the wiretap should support the in-out mep, >> but >> I cannot find a way make it work. Am I missing something? >> >> Any suggestion would be appreciated >> >> Thanks >> >> Giulio >> -- >> View this message in context: >> http://www.nabble.com/using-wiretap-inside-static-routing-slip-flow-tf48 >> 37197s12049.html#a13838679 >> Sent from the ServiceMix - User mailing list archive at Nabble.com. >> >> >> > > -- View this message in context: http://www.nabble.com/using-wiretap-inside-static-routing-slip-flow-tf4837197s12049.html#a13855546 Sent from the ServiceMix - User mailing list archive at Nabble.com.
