Are we not using the Topics/Message Content XPath correctly? This is our Subscription Request (appears to succeed - no errors returned):
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"> <env:Header /> <env:Body> <wsnt:Subscribe xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2" xmlns:wsa="http://www.w3.org/2005/08/addressing"> <wsnt:ConsumerReference> <wsa:Address> endpoint:http://test/MyS1PojoService/myS1PojoSu </wsa:Address> </wsnt:ConsumerReference> <wsnt:Filter> <wsnt:TopicExpression Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple">TransferDocumentSubmitted</wsnt:TopicExpression> <wsnt:MessageContent Dialect=”http://www.w3.org/TR/1999/REC-xpath-19991116”>/TransferDocumentSubmitted/TransferDocument/FulfillingBusinessUnit/@id=123</wsnt:MessageContent> </wsnt:Filter> </wsnt:Subscribe> </env:Body> </env:Envelope> And our Notify sent to the WSN2005 SE (results in no notifications from the WSN2005 SE): <wsnt:Notify xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2"> <wsnt:NotificationMessage> <wsnt:Topic>TransferDocumentSubmitted</wsnt:Topic> <wsnt:Message> <TransferDocumentSubmitted hour="10"> <TransferDocument> <FulfillingBusinessUnit id="123"/> <ReceivingBusinessUnit id="456"/> <LineItem quantity="100"><Item id="123456789" type="Shirt"/></LineItem> </TransferDocument> </TransferDocumentSubmitted> </wsnt:Message> </wsnt:NotificationMessage> </wsnt:Notify> ObjectOrange wrote: > > Thanks Gnodet! Is there also an example of how to use the MessageContent > filters on Apache's site or some other site? > > > gnodet wrote: >> >> I would load the WS-Notification component into eclipse, run >> servicemix in debug mode by setting the SERVICEMIX_DEBUG=true >> environment variable before launching servicemix from the console. >> Then connet to ServiceMix using your IDE, put a breakpoint in the >> JmsSubscription class, on the onMessage() method. >> The breakpoint should be hit when a JMS message will be received, >> which means the subscripion has received a message on the subscribed >> topic. >> Maybe the filter fails somehow ... >> >> On Wed, Oct 8, 2008 at 6:43 PM, ObjectOrange >> <[EMAIL PROTECTED]> wrote: >>> >>> We're now getting a Subscription using the MessageContent filter but no >>> notify from the WSN SE when a message is sent to it satisfying the >>> MessageContent's XPath. We've tried all different ways to set up the >>> subscription and send the message. Our next step is to launch the >>> ServiceMix >>> JVM in debug mode and hook into it with our IDE to step through the code >>> and >>> our Engineer on this has never done that. Would you happen to have an >>> example of this? We have to be missing something simple. >>> >>> >>> ObjectOrange wrote: >>>> >>>> This was so trivial, sorry for wasting your time! Thanks for the help! >>>> >>>> >>>> ObjectOrange wrote: >>>>> >>>>> Actually, I think we found it. It doesn't like a type of " we were >>>>> using. >>>>> >>>>> >>>>> ObjectOrange wrote: >>>>>> >>>>>> Attached is the log. >>>>>> >>>>>> >>>>>> gnodet wrote: >>>>>>> >>>>>>> Could you check the servicemix log ? I guess the exchange has an >>>>>>> error >>>>>>> status set by the WS-Notification SE somehow and it should be >>>>>>> logged. >>>>>>> If this is the case, can you paste the log snipped ? >>>>>>> >>>>>>> On Tue, Oct 7, 2008 at 5:22 PM, ObjectOrange >>>>>>> <[EMAIL PROTECTED]> wrote: >>>>>>>> >>>>>>>> Yes, when we remove the MessageContent tags, it works fine. >>>>>>>> >>>>>>>> We're using Servicemix 3.2.2 for every component. >>>>>>>> >>>>>>>> >>>>>>>> gnodet wrote: >>>>>>>>> >>>>>>>>> Does the same request work when you don't specify the filter ? >>>>>>>>> Which version of servicemix-http component do you use ? >>>>>>>>> >>>>>>>>> On Mon, Oct 6, 2008 at 9:26 PM, ObjectOrange >>>>>>>>> <[EMAIL PROTECTED]> wrote: >>>>>>>>>> >>>>>>>>>> We tried with no luck! :( >>>>>>>>>> >>>>>>>>>> Here's our Subscription request and reply: >>>>>>>>>> >>>>>>>>>> Request: >>>>>>>>>> <env:Envelope >>>>>>>>>> xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"> >>>>>>>>>> <env:Header /> >>>>>>>>>> <env:Body> >>>>>>>>>> <wsnt:Subscribe >>>>>>>>>> xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2" >>>>>>>>>> xmlns:wsa="http://www.w3.org/2005/08/addressing"> >>>>>>>>>> <wsnt:ConsumerReference> >>>>>>>>>> >>>>>>>>>> <wsa:Address>endpoint:http://test/MyS1PojoService/myS1PojoSu</wsa:Address> >>>>>>>>>> </wsnt:ConsumerReference> >>>>>>>>>> <wsnt:Filter> >>>>>>>>>> <wsnt:TopicExpression >>>>>>>>>> Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple">DocumentSubmitted</wsnt:TopicExpression> >>>>>>>>>> <wsnt:MessageContent >>>>>>>>>> Dialect="http://www.w3.org/TR/1999/REC-xpath-19991116">/DocumentSubmitted/@id=123</wsnt:MessageContent> >>>>>>>>>> </wsnt:Filter> >>>>>>>>>> </wsnt:Subscribe> >>>>>>>>>> </env:Body> >>>>>>>>>> </env:Envelope> >>>>>>>>>> >>>>>>>>>> Response: >>>>>>>>>> >>>>>>>>>> STATUS: 500 >>>>>>>>>> >>>>>>>>>> <html> >>>>>>>>>> <head> >>>>>>>>>> <meta http-equiv="Content-Type" content="text/html; >>>>>>>>>> charset=ISO-8859-1"/> >>>>>>>>>> <title>Error 500 java.lang.NullPointerException</title> >>>>>>>>>> </head> >>>>>>>>>> <body><h2>HTTP ERROR: >>>>>>>>>> 500</h2><pre>java.lang.NullPointerException</pre> >>>>>>>>>> <p>RequestURI=/Broker/</p><h3>Caused >>>>>>>>>> by:</h3><pre>java.lang.Exception: >>>>>>>>>> java.lang.NullPointerException >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> org.apache.servicemix.http.processors.ConsumerProcessor.process(ConsumerProcessor.java:198) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> org.apache.servicemix.http.HttpBridgeServlet.doPost(HttpBridgeServlet.java:71) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> javax.servlet.http.HttpServlet.service(HttpServlet.java:617) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> javax.servlet.http.HttpServlet.service(HttpServlet.java:690) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:722) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139) >>>>>>>>>> >>>>>>>>>> at org.mortbay.jetty.Server.handle(Server.java:320) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:374) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> org.mortbay.jetty.nio.SelectChannelConnector$RetryContinuation.run(SelectChannelConnector.java:506) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450) >>>>>>>>>> >>>>>>>>>> Caused by: java.lang.NullPointerException >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.expectText(UnmarshallingContext.java:442) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> com.sun.xml.bind.v2.runtime.unmarshaller.SAXConnector.characters(SAXConnector.java:112) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> org.apache.servicemix.jbi.jaxp.StaxSource.parse(StaxSource.java:86) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> org.apache.servicemix.jbi.jaxp.StaxSource.parse(StaxSource.java:266) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:199) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:172) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:120) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:103) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> org.apache.servicemix.wsn.component.WSNEndpoint.process(WSNEndpoint.java:128) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:538) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:490) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172) >>>>>>>>>> >>>>>>>>>> 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: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) >>>>>>>>>> >>>>>>>>>> </pre> >>>>>>>>>> >>>>>>>>>> <h3>Caused by:</h3><pre>java.lang.NullPointerException >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.expectText(UnmarshallingContext.java:442) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> com.sun.xml.bind.v2.runtime.unmarshaller.SAXConnector.characters(SAXConnector.java:112) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> org.apache.servicemix.jbi.jaxp.StaxSource.parse(StaxSource.java:86) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> org.apache.servicemix.jbi.jaxp.StaxSource.parse(StaxSource.java:266) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:199) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:172) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:120) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:103) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> org.apache.servicemix.wsn.component.WSNEndpoint.process(WSNEndpoint.java:128) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:538) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:490) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172) >>>>>>>>>> >>>>>>>>>> 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: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) >>>>>>>>>> </pre> >>>>>>>>>> <p><small> http://jetty.mortbay.org/ Powered by Jetty:// >>>>>>>>>> </small></p><br/> >>>>>>>>>> </body> >>>>>>>>>> </html> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> gnodet wrote: >>>>>>>>>>> >>>>>>>>>>> Yes, XPath is supported for filtering message contents. >>>>>>>>>>> >>>>>>>>>>> On Mon, Oct 6, 2008 at 7:07 PM, ObjectOrange >>>>>>>>>>> <[EMAIL PROTECTED]> wrote: >>>>>>>>>>>> >>>>>>>>>>>> I was mistaken; by the OASIS standards, it's a Message Content >>>>>>>>>>>> Filter >>>>>>>>>>>> using >>>>>>>>>>>> XPath. Are these supported? >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> gnodet wrote: >>>>>>>>>>>>> >>>>>>>>>>>>> Queries are not supported. However, you should be able to >>>>>>>>>>>>> leverage >>>>>>>>>>>>> the underlying ActiveMQ broker that supports composite and >>>>>>>>>>>>> virtual >>>>>>>>>>>>> destinations (see >>>>>>>>>>>>> http://activemq.apache.org/composite-destinations.html and >>>>>>>>>>>>> http://activemq.apache.org/virtual-destinations.html). >>>>>>>>>>>>> If this does not fullfil your needs, feel free to raise a >>>>>>>>>>>>> JIRA. >>>>>>>>>>>>> >>>>>>>>>>>>> On Mon, Oct 6, 2008 at 5:17 PM, ObjectOrange >>>>>>>>>>>>> <[EMAIL PROTECTED]> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>> Does anyone know if Topic filtering using XPath Query >>>>>>>>>>>>>> Expressions is >>>>>>>>>>>>>> supported? We're unable to create a Subscription with a >>>>>>>>>>>>>> QueryExpression. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Thx! >>>>>>>>>>>>>> -- >>>>>>>>>>>>>> View this message in context: >>>>>>>>>>>>>> http://www.nabble.com/WSN-2005-SE-Query-Expression-XPath-Support-tp19839994p19839994.html >>>>>>>>>>>>>> Sent from the ServiceMix - User mailing list archive at >>>>>>>>>>>>>> Nabble.com. >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> -- >>>>>>>>>>>>> Cheers, >>>>>>>>>>>>> Guillaume Nodet >>>>>>>>>>>>> ------------------------ >>>>>>>>>>>>> Blog: http://gnodet.blogspot.com/ >>>>>>>>>>>>> ------------------------ >>>>>>>>>>>>> Open Source SOA >>>>>>>>>>>>> http://open.iona.com >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>>> View this message in context: >>>>>>>>>>>> http://www.nabble.com/WSN-2005-SE-Query-Expression-XPath-Support-tp19839994p19842070.html >>>>>>>>>>>> Sent from the ServiceMix - User mailing list archive at >>>>>>>>>>>> Nabble.com. >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> Cheers, >>>>>>>>>>> Guillaume Nodet >>>>>>>>>>> ------------------------ >>>>>>>>>>> Blog: http://gnodet.blogspot.com/ >>>>>>>>>>> ------------------------ >>>>>>>>>>> Open Source SOA >>>>>>>>>>> http://open.iona.com >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> View this message in context: >>>>>>>>>> http://www.nabble.com/WSN-2005-SE-Query-Expression-XPath-Support-tp19839994p19844621.html >>>>>>>>>> Sent from the ServiceMix - User mailing list archive at >>>>>>>>>> Nabble.com. >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Cheers, >>>>>>>>> Guillaume Nodet >>>>>>>>> ------------------------ >>>>>>>>> Blog: http://gnodet.blogspot.com/ >>>>>>>>> ------------------------ >>>>>>>>> Open Source SOA >>>>>>>>> http://open.iona.com >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> View this message in context: >>>>>>>> http://www.nabble.com/WSN-2005-SE-Query-Expression-XPath-Support-tp19839994p19860597.html >>>>>>>> Sent from the ServiceMix - User mailing list archive at Nabble.com. >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Cheers, >>>>>>> Guillaume Nodet >>>>>>> ------------------------ >>>>>>> Blog: http://gnodet.blogspot.com/ >>>>>>> ------------------------ >>>>>>> Open Source SOA >>>>>>> http://open.iona.com >>>>>>> >>>>>>> >>>>>> http://www.nabble.com/file/p19881492/log.txt log.txt >>>>>> >>>>> >>>>> >>>> >>>> >>> >>> -- >>> View this message in context: >>> http://www.nabble.com/WSN-2005-SE-Query-Expression-XPath-Support-tp19839994p19882773.html >>> Sent from the ServiceMix - User mailing list archive at Nabble.com. >>> >>> >> >> >> >> -- >> Cheers, >> Guillaume Nodet >> ------------------------ >> Blog: http://gnodet.blogspot.com/ >> ------------------------ >> Open Source SOA >> http://open.iona.com >> >> > > -- View this message in context: http://www.nabble.com/WSN-2005-SE-Query-Expression-XPath-Support-tp19839994p19901496.html Sent from the ServiceMix - User mailing list archive at Nabble.com.
