For ServiceMix to handle JMS messages without using a custom marshaler, the JMS message must be a text message with a valid xml inside. Check the content of your message...
On Thu, Nov 13, 2008 at 9:16 AM, manish_goyal <[EMAIL PROTECTED]> wrote: > > Hi, > > I am sending JAVA Object to ActiveMQ JMS queue after converting it to the > ByteArrayOutputStream and then textmessage. I am using > eip-content-based-router for routing message to another queue. I m using > xpath for checking the content of message. > But i am getting following error:- > > [Fatal Error] :1:1: Content is not allowed in prolog. > WARN - XPathPredicate - Could not evaluate xpath expression > javax.jbi.messaging.MessagingException: org.xml.sax.SAXParseException: > Content i > s not allowed in prolog. > at > org.apache.servicemix.expression.JAXPXPathExpression.evaluate(JAXPXPa > thExpression.java:150) > at > org.apache.servicemix.expression.JAXPBooleanXPathExpression.evaluate( > JAXPBooleanXPathExpression.java:46) > at > org.apache.servicemix.eip.support.XPathPredicate.matches(XPathPredica > te.java:48) > at > org.apache.servicemix.eip.patterns.ContentBasedRouter.getDestination( > ContentBasedRouter.java:78) > at > org.apache.servicemix.eip.support.AbstractContentBasedRouter.processA > sync(AbstractContentBasedRouter.java:116) > at > org.apache.servicemix.eip.EIPEndpoint.process(EIPEndpoint.java:161) > at > org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLi > feCycle.java:540) > at > org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(Async > BaseLifeCycle.java:492) > at > org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLife > Cycle.java:46) > at > org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBoun > d(DeliveryChannelImpl.java:610) > at > org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlo > w.java:172) > at > org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.j > ava:167) > at > org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.jav > a:134) > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec > utor.java:650) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor > .java:675) > at java.lang.Thread.run(Thread.java:595) > Caused by: org.xml.sax.SAXParseException: Content is not allowed in prolog. > at org.apache.xerces.parsers.DOMParser.parse(Unknown Source) > at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source) > at > org.apache.servicemix.jbi.jaxp.SourceTransformer.toDOMSourceFromStrea > m(SourceTransformer.java:262) > at > org.apache.servicemix.jbi.jaxp.SourceTransformer.toDOMSource(SourceTr > ansformer.java:175) > at > org.apache.servicemix.jbi.jaxp.SourceTransformer.toDOMNode(SourceTran > sformer.java:311) > at > org.apache.servicemix.jbi.jaxp.SourceTransformer.toDOMNode(SourceTran > sformer.java:330) > at > org.apache.servicemix.expression.JAXPXPathExpression.getXMLNode(JAXPX > PathExpression.java:244) > at > org.apache.servicemix.expression.JAXPXPathExpression.evaluate(JAXPXPa > thExpression.java:135) > ... 15 more > > > Please tell me whether i need to change the message format or some thing > else. > > Thanks. > > Regards, > Manish > -- > View this message in context: > http://www.nabble.com/Using-xpath-for-message-in-JMS-queue-tp20476423p20476423.html > Sent from the ServiceMix - User mailing list archive at Nabble.com. > > -- Cheers, Guillaume Nodet ------------------------ Blog: http://gnodet.blogspot.com/ ------------------------ Open Source SOA http://fusesource.com
