Aggregator problem ----------------------- I have re-test with the file lw component in place of the screen component and I have the same result ! Related to my latest schema, here the JBI exchanges for more understanding.
d0_inHttp <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://services.etnic.be"> <soapenv:Body> <ser:test> <ser:saxon> <request1/> <request2/> </ser:saxon> </ser:test> </soapenv:Body> </soapenv:Envelope> d1_outSeSaxon <?xml version="1.0" encoding="UTF-8"?> <nsEtnic:saxon xmlns:nsEtnic="http://services.etnic.be"> <nsEtnic:part> <request1/> </nsEtnic:part> <nsEtnic:part> <request2/> </nsEtnic:part> <nsEtnic:part> <nsEtnic:msgOri> <request1/> <request2/> </nsEtnic:msgOri> </nsEtnic:part> </nsEtnic:saxon> d2_outSeSplitter <?xml version="1.0" encoding="UTF-8"?> <nsEtnic:part xmlns:nsEtnic="http://services.etnic.be"> <request1/> </nsEtnic:part> d3_outSeSplitter <?xml version="1.0" encoding="UTF-8"?> <nsEtnic:part xmlns:nsEtnic="http://services.etnic.be"> <request2/> </nsEtnic:part> d4_outSeSplitter <?xml version="1.0" encoding="UTF-8"?> <nsEtnic:part xmlns:nsEtnic="http://services.etnic.be"> <nsEtnic:msgOri> <request1/> <request2/> </nsEtnic:msgOri> </nsEtnic:part> d5_inSeContentBasedRouter <?xml version="1.0" encoding="UTF-8"?> <nsEtnic:msgOri xmlns:nsEtnic="http://services.etnic.be"> <request1/> <request2/> </nsEtnic:msgOri> d6_inSeContentBasedRouter <?xml version="1.0" encoding="UTF-8"?> <request2/> d7_inSeContentBasedRouter <?xml version="1.0" encoding="UTF-8"?> <request1/> d8_outHttp2 <?xml version="1.0" encoding="UTF-8"?> <response2/> d9_outHttp1 <?xml version="1.0" encoding="UTF-8"?> <response1/> d10_outFile OR out_Screen <?xml version="1.0" encoding="UTF-8"?> <aggregate count="3"> <message index="0"> <request1/> </message> <message index="1"> <request2/> </message> <message index="2"> <nsEtnic:msgOri xmlns:nsEtnic="http://services.etnic.be" xmlns:fn="http://www.w3.org/2005/xpath-functions"> <request1/> <request2/> </nsEtnic:msgOri> </message> </aggregate> And finally, the result I want to have : <?xml version="1.0" encoding="UTF-8"?> <aggregate count="3"> <message index="0"> <response1/> </message> <message index="1"> <response2/> </message> <message index="2"> <nsEtnic:msgOri xmlns:nsEtnic="http://services.etnic.be" xmlns:fn="http://www.w3.org/2005/xpath-functions"> <request1/> <request2/> </nsEtnic:msgOri> </message> </aggregate> Saxon problem ----------------- By the way, I have also a problem with the Saxon Service Engine. When I deploy my Service Assembly at DEBUG level, no problem and when I deploy my Service Assembly (without changing anything except log4j.xml) at INFO level, I have a NullPointerException : ERROR - SaxonComponent - Error processing exchange InOut[ id: ID:POC07-2018-1168506505759-2:0 status: Active role: provider service: {http://saxon.test.etnic.be}seSaxon endpoint: endpoint in: Unable to display: java.util.EmptyStackException out: null ] java.lang.NullPointerException at net.sf.saxon.event.ReceivingContentHandler.getNameCode(ReceivingContentHandler.java:299) at net.sf.saxon.event.ReceivingContentHandler.startElement(ReceivingContentHandler.java:216) at org.apache.servicemix.jbi.jaxp.StaxSource.parse(StaxSource.java:136) at org.apache.servicemix.jbi.jaxp.StaxSource.parse(StaxSource.java:259) at net.sf.saxon.event.Sender.sendSAXSource(Sender.java:269) at net.sf.saxon.event.Sender.send(Sender.java:124) at net.sf.saxon.event.Sender.send(Sender.java:46) at net.sf.saxon.Controller.transform(Controller.java:1417) at org.apache.servicemix.saxon.XsltEndpoint.transformContent(XsltEndpoint.java:97) at org.apache.servicemix.saxon.XsltEndpoint.transform(XsltEndpoint.java:74) at org.apache.servicemix.saxon.SaxonEndpoint.processInOut(SaxonEndpoint.java:217) at org.apache.servicemix.common.endpoints.ProviderEndpoint.process(ProviderEndpoint.java:109) at org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:489) at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:441) at org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46) at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:593) at org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:174) at org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:176) at org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690) at java.lang.Thread.run(Thread.java:595) WARN - jetty - EXCEPTION javax.servlet.ServletException: Failed to process request: java.lang.Exception: java.lang.NullPointerException at org.apache.servicemix.http.HttpBridgeServlet.doPost(HttpBridgeServlet.java:79) 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:445) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:356) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:627) at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149) at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:123) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:141) at org.mortbay.jetty.Server.handle(Server.java:269) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:430) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:333) at org.mortbay.jetty.nio.HttpChannelEndPoint.run(HttpChannelEndPoint.java:270) at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475) WARN - jetty - Nested in javax.servlet.ServletException: Failed to process request: java.lang. Exception: java.lang.NullPointerException: java.lang.Exception: java.lang.NullPointerException at org.apache.servicemix.http.processors.ConsumerProcessor.process(ConsumerProcessor.java:214) 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:445) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:356) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:627) at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149) at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:123) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:141) at org.mortbay.jetty.Server.handle(Server.java:269) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:430) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:333) at org.mortbay.jetty.nio.HttpChannelEndPoint.run(HttpChannelEndPoint.java:270) at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475) Caused by: java.lang.NullPointerException at net.sf.saxon.event.ReceivingContentHandler.getNameCode(ReceivingContentHandler.java:299) at net.sf.saxon.event.ReceivingContentHandler.startElement(ReceivingContentHandler.java:216) at org.apache.servicemix.jbi.jaxp.StaxSource.parse(StaxSource.java:136) at org.apache.servicemix.jbi.jaxp.StaxSource.parse(StaxSource.java:259) at net.sf.saxon.event.Sender.sendSAXSource(Sender.java:269) at net.sf.saxon.event.Sender.send(Sender.java:124) at net.sf.saxon.event.Sender.send(Sender.java:46) at net.sf.saxon.Controller.transform(Controller.java:1417) at org.apache.servicemix.saxon.XsltEndpoint.transformContent(XsltEndpoint.java:97) at org.apache.servicemix.saxon.XsltEndpoint.transform(XsltEndpoint.java:74) at org.apache.servicemix.saxon.SaxonEndpoint.processInOut(SaxonEndpoint.java:217) at org.apache.servicemix.common.endpoints.ProviderEndpoint.process(ProviderEndpoint.java:109) at org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:489) at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:441) at org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46) at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:593) at org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:174) at org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:176) at org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690) at java.lang.Thread.run(Thread.java:595) Anne Noseda wrote: > > Yes I'm talking about the xml content. > I have test at DEBUG level. > All the content of the JBI exchanges are correct except in my screen > component. > The 2 Web Services reply correctly to the 2 Wire Tap. The Wire Tap's > forward the correct content to the Pipelines. The Aggregator receives the > 3 exchanges with the correct content but the screen binding component > display the same content wich was sending by the pipeline to the content > based router !!! > > > gnodet wrote: >> >> The data you are talking about is inside the xml content, right ? >> Can you check the output log at DEBUG level and see if the content >> of the exchanges are correct ? I don't really see of the aggregator >> would receive the xml output by the splitter, unless there is a >> configuration >> problem... >> >> On 1/10/07, Anne Noseda <[EMAIL PROTECTED]> wrote: >>> >>> Correlation ID error fixed with Wire Tap but the aggregator gives me >>> original >>> exchanges and not Web Services responses. >>> Here the explanation with a schema : my aggregator must give me an >>> exchange >>> wich contains data d5+d8+d9 but in fact, it gives me an exchange wich >>> contains data d5+d6+d7. >>> Is it normal ? >>> http://www.nabble.com/file/5564/xslt2.jpg >>> >>> >>> gnodet wrote: >>> > >>> > SM-809 has been checked in. >>> > This defines a new flag on the EIP WireTap >>> > to allow forwarding properties from the in message >>> > to the out / fault message. >>> > >>> > See >>> > >>> > <eip:xpath-splitter service="test:aggregatorSplitter" >>> > endpoint="endpoint" >>> > xpath="/*/*" >>> > namespaceContext="#nsContext"> >>> > <eip:target> >>> > <eip:exchange-target >>> service="test:pipeline-aggregator" >>> > /> >>> > >>> > </eip:target> >>> > </eip:xpath-splitter> >>> > >>> > <eip:pipeline service="test:pipeline-aggregator" >>> > endpoint="endpoint"> >>> > <eip:transformer> >>> > <eip:exchange-target service="test:wiretap-echo" /> >>> > </eip:transformer> >>> > <eip:target> >>> > <eip:exchange-target service="test:aggregator" /> >>> > >>> > </eip:target> >>> > </eip:pipeline> >>> > >>> > <eip:wire-tap service="test:wiretap-echo" >>> > endpoint="endpoint" >>> > copyProperties="true"> >>> > <eip:target> >>> > <eip:exchange-target service="test:echo" /> >>> > </eip:target> >>> > </eip:wire-tap> >>> > >>> > <eip:split-aggregator service="test:aggregator" >>> > endpoint="endpoint"> >>> > <eip:target> >>> > <eip:exchange-target service="test:trace5" /> >>> > </eip:target> >>> > </eip:split-aggregator> >>> > >>> > >>> > This will work even if the echo service does not forward >>> > the needed properties. >>> > >>> > On 1/10/07, Guillaume Nodet <[EMAIL PROTECTED]> wrote: >>> >> I've just test the problem using an EIP pattern between >>> >> the splitter and the aggregator, and it works fine, as soon >>> >> as the target component correctly forward the needed >>> >> properties (I used the o.a.s.components.util.EchoComponent). >>> >> >>> >> The problem is that not all components handle that. >>> >> The jsr181, jms, http ... won't work afaik. There is already >>> >> a JIRA for the jsr181 component which could be extended to other >>> >> components. >>> >> >>> >> Another way is to implement a kind of wire tap, which would >>> >> act as a transparent proxy and copy the needed properties. >>> >> >>> >> I think both should be done. >>> >> >>> >> On 1/10/07, Anne Noseda <[EMAIL PROTECTED]> wrote: >>> >> > Hy, >>> >> > >>> >> > I have a similar problem but I think that the pipeline eip service >>> >> > engine looses the correlation ID when it calls an extern WS. >>> >> > >>> >> > Here the schema of my work : >>> >> > (see attachment) >>> >> > >>> >> > The exchanges 1 and 2 raise an error "Could not retrieve >>> correlation >>> >> > id for incoming exchange" in the aggregator eip service engine but >>> the >>> >> > exchange number 3 is correctly processed by the aggregator. I think >>> >> > the saxon service engine is not implicated. >>> >> > >>> >> > Here my error stack trace : >>> >> > >>> >> > Exchange 3 ok : >>> >> > >>> >> > DEBUG - DeliveryChannelImpl - Received: InOnly[ >>> >> > id: ID:POC07-1718-1168419261170-2:29 >>> >> > status: Active >>> >> > role: provider >>> >> > service: {http://saxon.test.etnic.be}seAggregator >>> >> > endpoint: endpoint >>> >> > in: <?xml version="1.0" encoding="UTF-8"?> *** >>> >> > ] >>> >> > DEBUG - DeliveryChannelImpl - Processing inbound >>> exchange: >>> >> InOnly[ >>> >> > id: ID:POC07-1718-1168419261170-2:29 >>> >> > status: Done >>> >> > role: consumer >>> >> > service: {http://saxon.test.etnic.be}seAggregator >>> >> > endpoint: endpoint >>> >> > in: <?xml version="1.0" encoding="UTF-8"?> *** >>> >> > ] >>> >> > >>> >> > Exchanges 1 et 2 : KO : >>> >> > >>> >> > ERROR - EIPComponent - Error processing exchange >>> >> InOnly[ >>> >> > id: ID:POC07-1718-1168419261170-2:33 >>> >> > status: Active >>> >> > role: provider >>> >> > service: {http://saxon.test.etnic.be}seAggregator >>> >> > endpoint: endpoint >>> >> > in: <?xml version="1.0" encoding="UTF-8"?> *** >>> >> > ] >>> >> > java.lang.IllegalArgumentException: Could not retrieve correlation >>> id >>> >> > for incoming exchange >>> >> > at >>> >> >>> org.apache.servicemix.eip.support.AbstractAggregator.process(AbstractAggregator.java:138) >>> >> > at >>> >> >>> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:489) >>> >> > at >>> >> >>> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:441) >>> >> > at >>> >> >>> org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46) >>> >> > at >>> >> >>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:593) >>> >> > at >>> >> >>> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:174) >>> >> > at >>> >> >>> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:176) >>> >> > at >>> >> >>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134) >>> >> > at >>> >> >>> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665 >>> >> > >>> >> > at >>> >> >>> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690) >>> >> > at java.lang.Thread.run(Thread.java:595) >>> >> > >>> >> > ERROR - EIPComponent - Error processing exchange >>> >> InOnly[ >>> >> > id: ID:POC07-1718-1168419261170-2:34 >>> >> > status: Active >>> >> > role: provider >>> >> > service: {http://saxon.test.etnic.be}seAggregator >>> >> > endpoint: endpoint >>> >> > in: <?xml version="1.0" encoding="UTF-8"?> *** >>> >> > ] >>> >> > java.lang.IllegalArgumentException: Could not retrieve correlation >>> id >>> >> > for incoming exchange >>> >> > at >>> >> >>> org.apache.servicemix.eip.support.AbstractAggregator.process(AbstractAggregator.java:138) >>> >> > at >>> >> >>> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:489) >>> >> > at >>> >> >>> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:441) >>> >> > at >>> >> >>> org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46) >>> >> > at >>> >> >>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:593) >>> >> > at >>> >> >>> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:174) >>> >> > at >>> >> >>> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:176) >>> >> > at >>> >> >>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134) >>> >> > at >>> >> >>> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665) >>> >> > >>> >> > at >>> >> >>> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690) >>> >> > at java.lang.Thread.run(Thread.java:595) >>> >> > >>> >> > >>> >> > >>> >> > 2007/1/10, sebastien <[EMAIL PROTECTED]>: >>> >> > > >>> >> > > Hi, >>> >> > > >>> >> > > I tried with servicemix-saxon SE. >>> >> > > Now, I can see in the log file that the correlation ID is sent to >>> the >>> >> > > aggregator component. >>> >> > > But I got still the same error : >>> >> > > http://www.nabble.com/file/5559/servicemix.log servicemix.log > >>> >> incoming >>> >> > > exchange" >>> >> > > >>> >> > > -> I put the servicemix log file in attachement >>> >> > > >>> >> > > Thanks for your help >>> >> > > >>> >> > > Sebastien >>> >> > > >>> >> > > >>> >> > > >>> >> > > >>> >> > > >>> >> > > gnodet wrote: >>> >> > > > >>> >> > > > Have you tried with servicemix-saxon SE instead of the >>> >> > > > lightweight component ? >>> >> > > > >>> >> > > > On 1/9/07, sebastien <[EMAIL PROTECTED]> wrote: >>> >> > > >> >>> >> > > >> hi all, >>> >> > > >> >>> >> > > >> I use the followings components : >>> >> > > >> >>> >> > > >> -> XSLT (x) >>> -> >>> >> HTTP >>> >> > > >> (pipeline) >>> >> > > >> HTTP -> Splitter -> Recipient List >>> >> > > >> -> Aggregator -> JMS >>> >> > > >> -> XSLT (x) >>> -> >>> >> HTTP >>> >> > > >> (pipeline) >>> >> > > >> >>> >> > > >> I can see in the log file that XSLT component does not send >>> the >>> >> > > >> correlation >>> >> > > >> ID property. >>> >> > > >> It causes the following error in the Aggregator component : >>> >> > > >> "java.lang.IllegalArgumentException: Could not retrieve >>> >> correlation id >>> >> > > >> for >>> >> > > >> incoming exchange" >>> >> > > >> >>> >> > > >> Have you got an idea ? >>> >> > > >> >>> >> > > >> Tanks for your help. >>> >> > > >> >>> >> > > >> Sebastien >>> >> > > >> >>> >> > > >> I tried with ServiceMix 3.0 and ServiceMix 3.1 version without >>> any >>> >> > > >> success. >>> >> > > >> -- >>> >> > > >> View this message in context: >>> >> > > >> >>> >> >>> http://www.nabble.com/Correlation-ID-lost-after-XSLT-component-tf2945039s12049.html#a8235443 >>> >> > > >> Sent from the ServiceMix - User mailing list archive at >>> >> Nabble.com. >>> >> > > >> >>> >> > > >> >>> >> > > > >>> >> > > > >>> >> > > > -- >>> >> > > > Cheers, >>> >> > > > Guillaume Nodet >>> >> > > > >>> >> > > > >>> >> > > >>> >> > > -- >>> >> > > View this message in context: >>> >> >>> http://www.nabble.com/Correlation-ID-lost-after-XSLT-component-tf2945039s12049.html#a8253993 >>> >> > > Sent from the ServiceMix - User mailing list archive at >>> Nabble.com. >>> >> > > >>> >> > > >>> >> > >>> >> > >>> >> >>> >> >>> >> -- >>> >> Cheers, >>> >> Guillaume Nodet >>> >> >>> > >>> > >>> > -- >>> > Cheers, >>> > Guillaume Nodet >>> > >>> > >>> >>> -- >>> View this message in context: >>> http://www.nabble.com/Correlation-ID-lost-after-XSLT-component-tf2945039s12049.html#a8258815 >>> Sent from the ServiceMix - User mailing list archive at Nabble.com. >>> >>> >> >> >> -- >> Cheers, >> Guillaume Nodet >> ------------------------ >> Architect, LogicBlaze (http://www.logicblaze.com/) >> Blog: http://gnodet.blogspot.com/ >> >> > > Aggregator problem -- View this message in context: http://www.nabble.com/Correlation-ID-lost-after-XSLT-component-tf2945039s12049.html#a8274219 Sent from the ServiceMix - User mailing list archive at Nabble.com.
