Stefan, You mention processing the Exchange. How do you do that -- i.e. which component are you using? If you're doing any coding yourself, you should be aware that a StaxSource can only be read once, so if you're using it multiple time (e.g. reading the message AND setting it back on the 'out' NormalizedMessage), you should first convert it to re-readable Source type.
Unfortunately, the convenient MessageUtil.enableContentRereadability() method is broken for StaxSources in ServiceMix 3.3 [1], so you would have to do that yourself (e.g. transform to a String and then use a StringSource on the 'out' message). Regards, Gert Vanthienen ------------------------ Open Source SOA: http://fusesource.com Blog: http://gertvanthienen.blogspot.com/ [1] https://issues.apache.org/activemq/browse/SM-1830 2009/5/11 Stefan Weber <[email protected]>: > > Hi, > > i'm using a synchonous jms-queue (provider + consumer with > replydestinations). > The "in" messages of the InOut exchanges have a DOMSource as content. After > submiting and polling trought the consumer the exchanges message content > changed from DOMsource to StAXSource. Fine so far. I process the exchange > and send the exchange with the "in" message transfered to "out" back to the > jms queue. > > Then the following exception is raised: > > 15:30:47,718 | DEBUG | tenerContainer-1 | PhaseInterceptorChain | > .soap.core.PhaseInterceptorChain 83 | Invoking handleMessage on > interceptor > org.apache.servicemix.soap.interceptors.mime.AttachmentsInInterceptor > 15:30:47,718 | DEBUG | tenerContainer-1 | PhaseInterceptorChain | > .soap.core.PhaseInterceptorChain 83 | Invoking handleMessage on > interceptor org.apache.servicemix.soap.interceptors.xml.StaxInInterceptor > 15:30:47,718 | INFO | tenerContainer-1 | PhaseInterceptorChain | > .soap.core.PhaseInterceptorChain 89 | Interceptor has thrown exception, > unwinding now > 15:30:47,718 | DEBUG | tenerContainer-1 | PhaseInterceptorChain | > .soap.core.PhaseInterceptorChain 96 | Invoking handleFault on interceptor > org.apache.servicemix.soap.interceptors.xml.StaxInInterceptor > 15:30:47,718 | DEBUG | tenerContainer-1 | PhaseInterceptorChain | > .soap.core.PhaseInterceptorChain 96 | Invoking handleFault on interceptor > org.apache.servicemix.soap.interceptors.mime.AttachmentsInInterceptor > 15:30:47,718 | DEBUG | tenerContainer-1 | JmsComponent | > ms.endpoints.JmsProviderEndpoint 758 | Error while populating JBI exchange > org.apache.servicemix.jbi.runtime.impl.inouti...@1eafe13 > org.apache.servicemix.soap.api.Fault: com.ctc.wstx.exc.WstxEOFException: > Unexpected EOF in prolog > at [row,col {unknown-source}]: [1,0] > at > org.apache.servicemix.soap.interceptors.xml.StaxInInterceptor.handleMessage(StaxInInterceptor.java:64) > at > org.apache.servicemix.soap.core.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:85) > at > org.apache.servicemix.jms.endpoints.DefaultProviderMarshaler.populateMessage(DefaultProviderMarshaler.java:108) > at > org.apache.servicemix.jms.endpoints.JmsProviderEndpoint.onMessage(JmsProviderEndpoint.java:754) > at > org.apache.servicemix.jms.endpoints.JmsProviderEndpoint$5.onMessage(JmsProviderEndpoint.java:948) > at > org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:543) > at > org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:482) > at > org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:451) > at > org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:323) > at > org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:261) > at > org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:982) > at > org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:974) > at > org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:876) > at java.lang.Thread.run(Thread.java:595) > Caused by: com.ctc.wstx.exc.WstxEOFException: Unexpected EOF in prolog > at [row,col {unknown-source}]: [1,0] > at > com.ctc.wstx.sr.StreamScanner.throwUnexpectedEOF(StreamScanner.java:686) > at > com.ctc.wstx.sr.BasicStreamReader.handleEOF(BasicStreamReader.java:2134) > at > com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:2040) > at > com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1069) > at > javax.xml.stream.util.StreamReaderDelegate.next(StreamReaderDelegate.java:51) > at > org.apache.servicemix.soap.util.stax.ExtendedXMLStreamReader.next(ExtendedXMLStreamReader.java:61) > at > org.apache.servicemix.soap.util.stax.ExtendedXMLStreamReader.nextTag(ExtendedXMLStreamReader.java:44) > at > org.apache.servicemix.soap.interceptors.xml.StaxInInterceptor.handleMessage(StaxInInterceptor.java:61) > ... 13 more > > > The following jms queue definitions are used: > > <!-- JMS InQueue endpoint --> > <jms:provider service="cp:inQueueingSync" > endpoint="endpoint" > destinationName="sync.in" > replyDestinationName=sync.out" > connectionFactory="#connectionFactory" /> > > <!-- JMS InQueue poller endpoint --> > <jms:consumer service="cp:inQueueSyncPoller" > endpoint="endpoint" > destinationName="sync.in" > replyDestinationName="sync.out" > targetService="cp:myTargetService" > concurrentConsumers="2" > cacheLevel="3" > connectionFactory="#connectionFactory"> > > <property name="marshaler"> > <bean > class="org.apache.servicemix.jms.endpoints.DefaultConsumerMarshaler"> > <property name="mep" > value="http://www.w3.org/2004/08/wsdl/in-out" /> > </bean> > </property> > > </jms:consumer> > > > Debug-msg from exchange send TO the queue > > id: 86be494a-e280-4fcf-82a7-57432224bcff > mep: InOut > status: Active > role: Consumer > target: PropertyMatchingReference[{SERVICE_NAME={xxx}inQueueingSync}] > properties: [ > javax.jbi.messaging.MessageExchange = > org.apache.servicemix.jbi.runtime.impl.inouti...@1eafe13 > javax.jbi.messaging.sendSync = true > javax.jbi.ServiceName = {xxx}inQueueingSync > org.apache.servicemix.correlationId = > 634f215d-fa88-45d1-ab44-9b5da00d7da9 > javax.jbi.transaction.jta = > javax.jbi.InterfaceName = > org.apache.servicemix.senderEndpoint = {xxx}router:endpoint > ] > In: [ > content: <?xml version="1.0" encoding="UTF-8" standalone="no"?>codehere > properties: [ > javax.jbi.messaging.sendSync = true > cp-jdocument-id = 1234567890 > cp-target-ext = xxx > ] > ] > ] > > Debug-msg from the exchange send BACK to the queue as reply > > [ > id: 36ef4069-bc30-42de-9e1d-4ae694171b79 > mep: InOut > status: Done > role: Consumer > target: PropertyMatchingReference[{SERVICE_NAME={xxx}myTargetService}] > properties: [ > javax.jbi.ServiceEndpoint = > org.apache.servicemix.jbi.runtime.impl.serviceendpointi...@1fdbab5 > javax.jbi.messaging.MessageExchange = > org.apache.servicemix.jbi.runtime.impl.inouti...@158517d > javax.jbi.messaging.sendSync = > javax.jbi.servicedesc.ServiceEndpoint = > org.apache.servicemix.jbi.runtime.impl.endpointi...@3d899a > javax.jbi.ServiceName = {xxx}myTargetService > org.apache.servicemix.correlationId = > 36ef4069-bc30-42de-9e1d-4ae694171b79 > javax.jbi.transaction.jta = > javax.jbi.InterfaceName = > org.apache.servicemix.senderEndpoint = {xxx}inQueueSyncPoller:endpoint > ] > In: [ > content: org.apache.servicemix.soap.util.stax.staxsou...@14e1672 > properties: [ > javax.jbi.messaging.sendSync = true > cp-jdocument-id = 1234567890 > cp-target-ext = xxx > org.apache.servicemix.file.path = > C:\DOKUME~1\swe\LOKALE~1\Temp\1242048647062_synchon_tester.pdf > ] > ] > Out: [ > content: org.apache.servicemix.soap.util.stax.staxsou...@14e1672 > properties: [ > javax.jbi.messaging.sendSync = true > cp-jdocument-id = 1234567890 > cp-target-ext = xxx > org.apache.servicemix.file.path = > C:\DOKUME~1\swe\LOKALE~1\Temp\1242048647062_synchon_tester.pdf > ] > ] > ] > > > Any help would be nice! > > Thx Stefan > -- > View this message in context: > http://www.nabble.com/Unexpected-EOF-in-prolog-while-using-synchonous-JMS-queues-tp23484075p23484075.html > Sent from the ServiceMix - User mailing list archive at Nabble.com. >
