Hi A follow up on the question on message exchange listener.
To get the name of the source component, I am using ((MessageExchangeImpl)exchange).getSourceId().getName() But it returns the "servicemix-http" and not the actual name of the component. For any light-weight components the getName() returns NULL. I would like to get the service and endpoint name specified in my xbean.xml or servicemix.xml for source of a message. I also tried to getSourceContext().getComponentName() with the same result. Should I be doing something different? Regards Kiran -----Original Message----- From: Guillaume Nodet [mailto:[EMAIL PROTECTED] Sent: Thursday, August 03, 2006 12:33 PM To: [email protected] Subject: Re: Questions about JDBCAuditor and JBIContainer >From the component, in the init method, you can use ((ComponentContextImpl) getContext()).getContainer() On 8/4/06, Kiran Addepalli - SECF <[EMAIL PROTECTED]> wrote: > > Hi > > I am doing a similar implementation and this thread has helped a lot. I > would like to deploy this as a service assembly. Is there a way to get > the JBIcontainer reference in the serviceunit ? > > Deploying the serviceunit/assembly results in > PropertyAccessExceptionsException (1 errors) > org.springframework.beans.TypeMismatchException: Failed to convert > property value of type > [org.apache.servicemix.jbi.container.SpringServiceUnitContainer] to > required type [org.apache.servicemix.jbi.container.JBIContainer] for > property 'container' > > My serviceunit descriptor is below > > <?xml version="1.0" encoding="UTF-8"?> > <beans xmlns="http://xbean.org/schemas/spring/1.0" > xmlns:sm="http://servicemix.apache.org/config/1.0" > xmlns:my="http://test.com" > > > <classpath> > <location>.</location> > </classpath> > <sm:serviceunit id="jbi"> > <sm:activationSpecs> > <sm:activationSpec componentName="messageFlowListener" > service="my:messageFlowListener"> > <sm:component> > <bean class="my.MessageFlowListener" > > <property name="container" > ref="jbi"/> > </bean> > </sm:component> > </sm:activationSpec> > </sm:activationSpecs> > </sm:serviceunit> > </beans> > > > Regards > Kiran > > -----Original Message----- > From: Guillaume Nodet [mailto:[EMAIL PROTECTED] > Sent: Wednesday, August 02, 2006 9:44 AM > To: [email protected] > Subject: Re: Questions about JDBCAuditor and JBIContainer > > On 8/2/06, bruce76 <[EMAIL PROTECTED]> wrote: > > > > > > Hi, > > > > We're planning on creating a display that shows all the messages > flowing > > in > > and out of the NMR (I realize that this is a continuation of the "Get > all > > messages off the NMR thread") > > > > http://www.nabble.com/Capture-any-message-off-the-NMR--tf1902644.html > > > > However, we want to explore the path of using either the JDBCAuditor > or > > the > > JBIContainer objects. So, here's my questions: > > > > 1. If I use the JBIContainter.addListener(listener), should I get a > > callback > > on every MessageExchange flowing through the NMR? > > > Yes. Every time a JBI exchange is sent by a component using > DeliveryChannel.send or DeliveryChannel.sendSync, the listener > is called with the given exchange. > > 2. If so, then is it possible to obtain the "sender" of the message? I > > realize that I can determine the recipient of message from using > either > > MessageExchange.getEndpoint() or MessageExchange.getService() > > > Sure. > You should find the code in one of the existing listeners at > http://svn.apache.org/viewvc/incubator/servicemix/trunk/servicemix-core/ > src/main/java/org/apache/servicemix/jbi/view/ > Somehting like > ((MessageExchangeImpl) exchange).getSourceId() > will return an identifier of the component that sent the exchange. > > Thanks, > > > > Bruce > > -- > > View this message in context: > > > http://www.nabble.com/Questions-about-JDBCAuditor-and-JBIContainer-tf204 > 0547.html#a5616242 > > Sent from the ServiceMix - User forum at Nabble.com. > > > > > > > -- > Cheers, > Guillaume Nodet > *************************************************************** > The information in this email is confidential and may be > legally privileged. It is intended solely for the addressee. If > you have received this communication in error, please contact > the sender immediately, return the original message to the > sender, and delete the material from your computer. Thank you. > *************************************************************** > -- Cheers, Guillaume Nodet
