Hi all, When I tried to call DSS boxcaring and faced a issue when processing reply message flow.
for begin boxcar, DSS returns 202 message with content type header. HTTP/1.1 202 Accepted Set-Cookie: JSESSIONID=E6D09FBA4BEF0AE451844DE3726E28A5; Path=/; HttpOnly *Content-Type: text/xml;charset=UTF-8* Transfer-Encoding: chunked Date: Wed, 16 Oct 2013 15:10:49 GMT Server: WSO2 Carbon Server so ESB tries to parse message [2013-10-16 20:56:47,593] DEBUG - wire << "POST /services/test HTTP/1.1[\r][\n]" [2013-10-16 20:56:47,593] DEBUG - wire << "Content-Type: text/xml[\r][\n]" [2013-10-16 20:56:47,594] DEBUG - wire << "Accept: */*[\r][\n]" [2013-10-16 20:56:47,594] DEBUG - wire << "SOAPAction: "urn:begin_boxcar"[\r][\n]" [2013-10-16 20:56:47,594] DEBUG - wire << "Transfer-Encoding: chunked[\r][\n]" [2013-10-16 20:56:47,594] DEBUG - wire << "Host: localhost:9764[\r][\n]" [2013-10-16 20:56:47,594] DEBUG - wire << "Connection: Keep-Alive[\r][\n]" [2013-10-16 20:56:47,594] DEBUG - wire << "User-Agent: Synapse-PT-HttpComponents-NIO[\r][\n]" [2013-10-16 20:56:47,595] DEBUG - wire << "[\r][\n]" [2013-10-16 20:56:47,595] DEBUG - wire << "f2[\r][\n]" [2013-10-16 20:56:47,595] DEBUG - wire << "<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv=" http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><dat:begin_boxcar xmlns:dat="http://ws.wso2.org/dataservice "></dat:begin_boxcar></soapenv:Body></soapenv:Envelope>[\r][\n]" [2013-10-16 20:56:47,595] DEBUG - wire << "0[\r][\n]" [2013-10-16 20:56:47,595] DEBUG - wire << "[\r][\n]" *[2013-10-16 20:56:47,596] DEBUG - wire >> "HTTP/1.1 202 Accepted[\r][\n]"* *[2013-10-16 20:56:47,597] DEBUG - wire >> "Set-Cookie: JSESSIONID=704569E4FED657638EC97FBF2C48BE11; Path=/; HttpOnly[\r][\n]"* *[2013-10-16 20:56:47,597] DEBUG - wire >> "Content-Type: text/xml;charset=UTF-8[\r][\n]"* [2013-10-16 20:56:47,597] DEBUG - wire >> "Transfer-Encoding: chunked[\r][\n]" [2013-10-16 20:56:47,597] DEBUG - wire >> "Date: Wed, 16 Oct 2013 15:26:47 GMT[\r][\n]" [2013-10-16 20:56:47,597] DEBUG - wire >> "Server: WSO2 Carbon Server[\r][\n]" [2013-10-16 20:56:47,597] DEBUG - wire >> "[\r][\n]" [2013-10-16 20:56:47,598] DEBUG - wire >> "0[\r][\n]" [2013-10-16 20:56:47,599] DEBUG - wire >> "[\r][\n]" [2013-10-16 20:56:47,600] ERROR - RelayUtils Error while building Passthrough stream org.apache.axiom.om.OMException: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,1] Message: Premature end of file. at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:296) at org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.getSOAPEnvelope(StAXSOAPModelBuilder.java:204) at org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.<init>(StAXSOAPModelBuilder.java:154) at org.apache.axiom.om.impl.AbstractOMMetaFactory.createStAXSOAPModelBuilder(AbstractOMMetaFactory.java:73) at org.apache.axiom.om.impl.AbstractOMMetaFactory.createSOAPModelBuilder(AbstractOMMetaFactory.java:79) at org.apache.axiom.om.OMXMLBuilderFactory.createSOAPModelBuilder(OMXMLBuilderFactory.java:196) at org.apache.axis2.builder.SOAPBuilder.processDocument(SOAPBuilder.java:55) at org.apache.synapse.transport.passthru.util.DeferredMessageBuilder.getDocument(DeferredMessageBuilder.java:118) at org.apache.synapse.transport.passthru.util.RelayUtils.builldMessage(RelayUtils.java:107) at org.apache.synapse.transport.passthru.util.RelayUtils.buildMessage(RelayUtils.java:82) at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:68) at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:239) at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.mediateFromContinuationStateStack(Axis2SynapseEnvironment.java:556) at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:198) at org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:464) at org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:168) at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180) at org.apache.synapse.transport.passthru.ClientWorker.run(ClientWorker.java:225) at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,1] Message: Premature end of file. at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(XMLStreamReaderImpl.java:594) at org.apache.axiom.util.stax.wrapper.XMLStreamReaderWrapper.next(XMLStreamReaderWrapper.java:225) at org.apache.axiom.util.stax.dialect.DisallowDoctypeDeclStreamReaderWrapper.next(DisallowDoctypeDeclStreamReaderWrapper.java:34) at org.apache.axiom.util.stax.wrapper.XMLStreamReaderWrapper.next(XMLStreamReaderWrapper.java:225) at org.apache.axiom.util.stax.dialect.SJSXPStreamReaderWrapper.next(SJSXPStreamReaderWrapper.java:138) at org.apache.axiom.om.impl.builder.StAXOMBuilder.parserNext(StAXOMBuilder.java:681) at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:214) ... 21 more and fails. I was able to overcome this by skipping building of 202 Accepted messages. See attached diff. BTW is it fine to assume HTTP 202 response will not have a body. Spec does not tell that it's illegal but never seen a place which return http 202 with a body. Meanwhile if possible we need to fix DSS side to not send back content type header. -- Miyuru Wanninayaka Technical Lead WSO2 Inc. : http://wso2.com Mobile : +94 77 209 9788 Blog : http://miyurudw.blogspot.com Flickr : http://www.flickr.com/photos/miyuru_daminda
HTTP202-skip-build.diff
Description: Binary data
_______________________________________________ Dev mailing list Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev