Re: [Dev] Converting JSON to SOAP and vise versa in ESB
Thanks Harsha, that worked! The issue was caused by sending the following value in the payloadFactory of the insequence, payloadFactory media-type=xml format * soapenv:Envelope xmlns:soapenv=http://schemas.xmlsoap.org/soap/envelope/ http://schemas.xmlsoap.org/soap/envelope/ xmlns:web=http://www.w3schools.com/webservices/ http://www.w3schools.com/webservices/ soapenv:Header/soapenv:* *Header soapenv:Body web:CelsiusToFahrenheit web:Celsius$1/web:Celsius /web:CelsiusToFahrenheit /soapenv:Body /soapenv:Envelope* /format args arg evaluator=json expression=$.celsius/arg /args /payloadFactory But when I changed it to this as in Harshas example, payloadFactory media-type=xml format * web:CelsiusToFahrenheit xmlns:web=http://www.w3schools.com/webservices/ http://www.w3schools.com/webservices/ web:Celsius$1/web:Celsius /web:CelsiusToFahrenheit* /format args arg evaluator=json expression=$.celsius/arg /args /payloadFactory It started working. Thanks for the help everyone, it would be nice to know the reason behind this if anyone can let me know, is it because you should not try and add the SOAP envelope and header tags manually as this will be generated automatically when the address endpoint is defined as soap11? Better error messages would have helped diagnose this issue faster. On 8 February 2015 at 09:27, Harsha Kumara hars...@wso2.com wrote: Hi Uvindra, I checked with this with esb 4.8.1 fresh pack. It worked fine with below config. Please find my api config and response. api name=tempAPI context=/temp resource methods=POST GET inSequence log level=custom property name=IN_MESSAGE value=gtgtgtgtgtgtgtgtIN_MESSAGE/ /log property name=messageType value=application/xml scope=axis2/ property name=FORCE_HTTP_1.0 value=true scope=axis2/ property name=DISABLE_CHUNKING value=true scope=axis2/ payloadFactory media-type=xml format web:CelsiusToFahrenheit xmlns:web= http://www.w3schools.com/webservices/; web:Celsius$1/web:Celsius /web:CelsiusToFahrenheit /format args arg evaluator=json expression=$.celsius/ /args /payloadFactory send endpoint address uri= http://www.w3schools.com/webservices/tempconvert.asmx?op=CelsiusToFahrenheit format=soap11/ /endpoint /send /inSequence outSequence log level=custom property name=OUT_MESSAGE value=gtgtgtgtgtgtgtgtOUT_MESSAGE/ /log property name=messageType value=application/json scope=axis2/ script language=jsvar temp = mc.getPayloadXML()..*::CelsiusToFahrenheitResult.toString(); mc.setPayloadJSON({Temp : {Faran : temp}});/script send/ /outSequence /resource /api curl -i -POST -H 'Accept: application/json' -H 'Content-Type:application/json' -d '{celsius:12}' http://192.168.1.4:8280/temp HTTP/1.1 200 OK X-AspNet-Version: 4.0.30319 Content-Type: application/json X-Powered-By: ASP.NET Cache-Control: private, max-age=0,public Date: Sun, 08 Feb 2015 03:48:50 GMT Server: WSO2-PassThrough-HTTP Transfer-Encoding: chunked {Temp:{Faran:53.6}} Thanks, Harsha On Sat, Feb 7, 2015 at 9:55 PM, Uvindra Dias Jayasinha uvin...@wso2.com wrote: With wire logs on the issue becomes a bit more clear, 21:34:56,129 POST /temp HTTP/1.1[\r][\n] 21:34:56,130 User-Agent: curl/7.35.0[\r][\n] 21:34:56,130 Host: 10.0.3.1:8281[\r][\n] 21:34:56,130 Accept: application/json[\r][\n] 21:34:56,130 Content-Type:application/json[\r][\n] 21:34:56,130 Content-Length: 14[\r][\n] 21:34:56,130 [\r][\n] 21:34:56,131 {celsius:12} 21:34:56,175 LogMediator IN_MESSAGE = IN_MESSAGE 21:34:56,216 TimeoutHandler This engine will expire all callbacks after : 120 seconds, irrespective of the timeout action, after the specified or optional timeout 21:34:56,296 POST /webservices/tempconvert.asmx?op=CelsiusToFahrenheit HTTP/1.0[\r][\n] 21:34:56,297 Content-Type: text/xml[\r][\n] 21:34:56,297 Accept: application/json[\r][\n] 21:34:56,297 Content-Length: 292[\r][\n] 21:34:56,297 Host: www.w3schools.com:80[\r][\n] 21:34:56,298 Connection: Keep-Alive[\r][\n] 21:34:56,298 User-Agent: Synapse-PT-HttpComponents-NIO[\r][\n]
Re: [Dev] Converting JSON to SOAP and vise versa in ESB
Guys it worked for me with my config I mean how Uvindra can't ? *xxx-MacBook-Pro:bin dushan$ curl -i -POST -H 'Accept: application/json' -H 'Content-Type:application/json' -d '{celsius:12}' http://192.168.56.1:8281/temp http://192.168.56.1:8281/temp* *HTTP/1.1 200 OK* *X-AspNet-Version: 4.0.30319* *Content-Type: application/json* *X-Powered-By: ASP.NET http://asp.net/* *Cache-Control: private, max-age=0,public* *Date: Fri, 06 Feb 2015 17:19:20 GMT* *Server: WSO2-PassThrough-HTTP* *Transfer-Encoding: chunked* *{Temp:53.6}xxx-xxx-Pro:bin xx$* On Sat, Feb 7, 2015 at 9:51 AM, Malaka Silva mal...@wso2.com wrote: Can you share the wire logs? On Sat, Feb 7, 2015 at 12:50 PM, Uvindra Dias Jayasinha uvin...@wso2.com wrote: The Premature end of file exception is still happening even when I add those two properties in, this is a parser error happening on our end in the insequence itself. I still cant understand why this isnt working. On 7 February 2015 at 12:15, Chanaka Fernando chana...@wso2.com wrote: Hi Uvindra, According to the website, they expect content-length header in the request. You can use the below two property mediators to send the content-length always. property name=FORCE_HTTP_CONTENT_LENGTH value=true scope=axis2/property property name=COPY_CONTENT_LENGTH_FROM_INCOMING value=true scope=axis2/property Try the above properties prior to the send mediator. Thanks, Chanaka On Fri, Feb 6, 2015 at 11:28 PM, Uvindra Dias Jayasinha uvin...@wso2.com wrote: Ok tried that Dushan, but now I get a different exception when I hit the insequence 23:24:38,849 LogMediator IN_MESSAGE = IN_MESSAGE 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.AbstractListMediator.mediate(AbstractListMediator.java:47) at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:131) at org.apache.synapse.rest.Resource.process(Resource.java:297) at org.apache.synapse.rest.API.process(API.java:298) at org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:76) at org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:50) at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:220) at org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:488) at org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:170) 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:895) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) 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
Re: [Dev] Converting JSON to SOAP and vise versa in ESB
Can you share the wire logs? On Sat, Feb 7, 2015 at 12:50 PM, Uvindra Dias Jayasinha uvin...@wso2.com wrote: The Premature end of file exception is still happening even when I add those two properties in, this is a parser error happening on our end in the insequence itself. I still cant understand why this isnt working. On 7 February 2015 at 12:15, Chanaka Fernando chana...@wso2.com wrote: Hi Uvindra, According to the website, they expect content-length header in the request. You can use the below two property mediators to send the content-length always. property name=FORCE_HTTP_CONTENT_LENGTH value=true scope=axis2/property property name=COPY_CONTENT_LENGTH_FROM_INCOMING value=true scope=axis2/property Try the above properties prior to the send mediator. Thanks, Chanaka On Fri, Feb 6, 2015 at 11:28 PM, Uvindra Dias Jayasinha uvin...@wso2.com wrote: Ok tried that Dushan, but now I get a different exception when I hit the insequence 23:24:38,849 LogMediator IN_MESSAGE = IN_MESSAGE 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.AbstractListMediator.mediate(AbstractListMediator.java:47) at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:131) at org.apache.synapse.rest.Resource.process(Resource.java:297) at org.apache.synapse.rest.API.process(API.java:298) at org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:76) at org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:50) at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:220) at org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:488) at org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:170) 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:895) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) 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) ... 25 more 23:24:39,141 SequenceMediator Error while building message org.apache.axis2.AxisFault: Error while building Passthrough stream at org.apache.synapse.transport.passthru.util.RelayUtils.handleException(RelayUtils.java:236) at org.apache.synapse.transport.passthru.util.RelayUtils.builldMessage(RelayUtils.java:111) at
Re: [Dev] Converting JSON to SOAP and vise versa in ESB
With wire logs on the issue becomes a bit more clear, 21:34:56,129 POST /temp HTTP/1.1[\r][\n] 21:34:56,130 User-Agent: curl/7.35.0[\r][\n] 21:34:56,130 Host: 10.0.3.1:8281[\r][\n] 21:34:56,130 Accept: application/json[\r][\n] 21:34:56,130 Content-Type:application/json[\r][\n] 21:34:56,130 Content-Length: 14[\r][\n] 21:34:56,130 [\r][\n] 21:34:56,131 {celsius:12} 21:34:56,175 LogMediator IN_MESSAGE = IN_MESSAGE 21:34:56,216 TimeoutHandler This engine will expire all callbacks after : 120 seconds, irrespective of the timeout action, after the specified or optional timeout 21:34:56,296 POST /webservices/tempconvert.asmx?op=CelsiusToFahrenheit HTTP/1.0[\r][\n] 21:34:56,297 Content-Type: text/xml[\r][\n] 21:34:56,297 Accept: application/json[\r][\n] 21:34:56,297 Content-Length: 292[\r][\n] 21:34:56,297 Host: www.w3schools.com:80[\r][\n] 21:34:56,298 Connection: Keep-Alive[\r][\n] 21:34:56,298 User-Agent: Synapse-PT-HttpComponents-NIO[\r][\n] 21:34:56,298 [\r][\n] 21:34:56,298 ?xml version=1.0 encoding=UTF-8?soapenv:Envelope xmlns:soapenv=http://schemas.xmlsoap.org/soap/envelope/; xmlns:web= http://www.w3schools.com/webservices/ soapenv:Header/soapenv:Headersoapenv:Bodyweb:CelsiusToFahrenheitweb:Celsius12/web:Celsius/web:CelsiusToFahrenheit 21:34:56,423 HTTP/1.0 400 Bad Request[\r][\n] 21:34:56,423 Cache-Control: private,public[\r][\n] 21:34:56,423 Content-Type: text/xml; charset=utf-8[\r][\n] 21:34:56,423 Date: Sat, 07 Feb 2015 16:04:55 GMT[\r][\n] 21:34:56,423 Server: Microsoft-IIS/7.5[\r][\n] 21:34:56,423 X-AspNet-Version: 4.0.30319[\r][\n] 21:34:56,423 X-Powered-By: ASP.NET[\r][\n] 21:34:56,424 Content-Length: 0[\r][\n] 21:34:56,424 Connection: keep-alive[\r][\n] 21:34:56,424 [\r][\n] 21:34:56,437 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) The SOAP request being sent out is not valid XML at the end(seems like its getting chopped off) so the SOAP service is rejecting the message, any idea why this is happening? Here is the Synapse config again for reference, api xmlns=http://ws.apache.org/ns/synapse; name=tempAPI context=/temp resource methods=POST GET inSequence log level=custom property name=IN_MESSAGE value=IN_MESSAGE/property /log property name=messageType value=application/xml scope=axis2/property property name=FORCE_HTTP_1.0 value=true scope=axis2/property property name=DISABLE_CHUNKING value=true scope=axis2/property property name=FORCE_HTTP_CONTENT_LENGTH value=true scope=axis2/property property name=COPY_CONTENT_LENGTH_FROM_INCOMING value=true scope=axis2/property payloadFactory media-type=xml format soapenv:Envelope xmlns:soapenv= http://schemas.xmlsoap.org/soap/envelope/; xmlns:web= http://www.w3schools.com/webservices/; soapenv:Header/soapenv:Header soapenv:Body web:CelsiusToFahrenheit web:Celsius$1/web:Celsius /web:CelsiusToFahrenheit /soapenv:Body /soapenv:Envelope /format args arg evaluator=json expression=$.celsius/arg /args /payloadFactory send endpoint address uri= http://www.w3schools.com/webservices/tempconvert.asmx?op=CelsiusToFahrenheit; format=soap11/address /endpoint /send /inSequence outSequence log level=custom property name=OUT_MESSAGE value=OUT_MESSAGE/property /log property name=messageType value=application/json scope=axis2/property payloadFactory media-type=xml format Temp xmlns=$1/Temp /format args arg xmlns:foo=http://www.w3schools.com/webservices/; evaluator=xml expression=//foo:CelsiusToFahrenheitResponse/foo:CelsiusToFahrenheitResult/arg /args /payloadFactory send/send /outSequence /resource /api Using fresh ESB 4.8.1 pack without any config changes. On 7 February 2015 at 20:48, Dushan Abeyruwan dus...@wso2.com wrote: Guys
Re: [Dev] Converting JSON to SOAP and vise versa in ESB
Hi Uvindra, I checked with this with esb 4.8.1 fresh pack. It worked fine with below config. Please find my api config and response. api name=tempAPI context=/temp resource methods=POST GET inSequence log level=custom property name=IN_MESSAGE value=gtgtgtgtgtgtgtgtIN_MESSAGE/ /log property name=messageType value=application/xml scope=axis2/ property name=FORCE_HTTP_1.0 value=true scope=axis2/ property name=DISABLE_CHUNKING value=true scope=axis2/ payloadFactory media-type=xml format web:CelsiusToFahrenheit xmlns:web= http://www.w3schools.com/webservices/; web:Celsius$1/web:Celsius /web:CelsiusToFahrenheit /format args arg evaluator=json expression=$.celsius/ /args /payloadFactory send endpoint address uri= http://www.w3schools.com/webservices/tempconvert.asmx?op=CelsiusToFahrenheit format=soap11/ /endpoint /send /inSequence outSequence log level=custom property name=OUT_MESSAGE value=gtgtgtgtgtgtgtgtOUT_MESSAGE/ /log property name=messageType value=application/json scope=axis2/ script language=jsvar temp = mc.getPayloadXML()..*::CelsiusToFahrenheitResult.toString(); mc.setPayloadJSON({Temp : {Faran : temp}});/script send/ /outSequence /resource /api curl -i -POST -H 'Accept: application/json' -H 'Content-Type:application/json' -d '{celsius:12}' http://192.168.1.4:8280/temp HTTP/1.1 200 OK X-AspNet-Version: 4.0.30319 Content-Type: application/json X-Powered-By: ASP.NET Cache-Control: private, max-age=0,public Date: Sun, 08 Feb 2015 03:48:50 GMT Server: WSO2-PassThrough-HTTP Transfer-Encoding: chunked {Temp:{Faran:53.6}} Thanks, Harsha On Sat, Feb 7, 2015 at 9:55 PM, Uvindra Dias Jayasinha uvin...@wso2.com wrote: With wire logs on the issue becomes a bit more clear, 21:34:56,129 POST /temp HTTP/1.1[\r][\n] 21:34:56,130 User-Agent: curl/7.35.0[\r][\n] 21:34:56,130 Host: 10.0.3.1:8281[\r][\n] 21:34:56,130 Accept: application/json[\r][\n] 21:34:56,130 Content-Type:application/json[\r][\n] 21:34:56,130 Content-Length: 14[\r][\n] 21:34:56,130 [\r][\n] 21:34:56,131 {celsius:12} 21:34:56,175 LogMediator IN_MESSAGE = IN_MESSAGE 21:34:56,216 TimeoutHandler This engine will expire all callbacks after : 120 seconds, irrespective of the timeout action, after the specified or optional timeout 21:34:56,296 POST /webservices/tempconvert.asmx?op=CelsiusToFahrenheit HTTP/1.0[\r][\n] 21:34:56,297 Content-Type: text/xml[\r][\n] 21:34:56,297 Accept: application/json[\r][\n] 21:34:56,297 Content-Length: 292[\r][\n] 21:34:56,297 Host: www.w3schools.com:80[\r][\n] 21:34:56,298 Connection: Keep-Alive[\r][\n] 21:34:56,298 User-Agent: Synapse-PT-HttpComponents-NIO[\r][\n] 21:34:56,298 [\r][\n] 21:34:56,298 ?xml version=1.0 encoding=UTF-8?soapenv:Envelope xmlns:soapenv=http://schemas.xmlsoap.org/soap/envelope/; xmlns:web= http://www.w3schools.com/webservices/ soapenv:Header/soapenv:Headersoapenv:Bodyweb:CelsiusToFahrenheitweb:Celsius12/web:Celsius/web:CelsiusToFahrenheit 21:34:56,423 HTTP/1.0 400 Bad Request[\r][\n] 21:34:56,423 Cache-Control: private,public[\r][\n] 21:34:56,423 Content-Type: text/xml; charset=utf-8[\r][\n] 21:34:56,423 Date: Sat, 07 Feb 2015 16:04:55 GMT[\r][\n] 21:34:56,423 Server: Microsoft-IIS/7.5[\r][\n] 21:34:56,423 X-AspNet-Version: 4.0.30319[\r][\n] 21:34:56,423 X-Powered-By: ASP.NET[\r][\n] 21:34:56,424 Content-Length: 0[\r][\n] 21:34:56,424 Connection: keep-alive[\r][\n] 21:34:56,424 [\r][\n] 21:34:56,437 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) The SOAP request being sent out is not valid XML at the end(seems like its getting chopped off) so the SOAP service is rejecting the message, any idea why this is happening? Here is the Synapse config again for reference, api xmlns=http://ws.apache.org/ns/synapse; name=tempAPI context=/temp resource methods=POST GET
Re: [Dev] Converting JSON to SOAP and vise versa in ESB
The Premature end of file exception is still happening even when I add those two properties in, this is a parser error happening on our end in the insequence itself. I still cant understand why this isnt working. On 7 February 2015 at 12:15, Chanaka Fernando chana...@wso2.com wrote: Hi Uvindra, According to the website, they expect content-length header in the request. You can use the below two property mediators to send the content-length always. property name=FORCE_HTTP_CONTENT_LENGTH value=true scope=axis2/property property name=COPY_CONTENT_LENGTH_FROM_INCOMING value=true scope=axis2/property Try the above properties prior to the send mediator. Thanks, Chanaka On Fri, Feb 6, 2015 at 11:28 PM, Uvindra Dias Jayasinha uvin...@wso2.com wrote: Ok tried that Dushan, but now I get a different exception when I hit the insequence 23:24:38,849 LogMediator IN_MESSAGE = IN_MESSAGE 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.AbstractListMediator.mediate(AbstractListMediator.java:47) at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:131) at org.apache.synapse.rest.Resource.process(Resource.java:297) at org.apache.synapse.rest.API.process(API.java:298) at org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:76) at org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:50) at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:220) at org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:488) at org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:170) 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:895) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) 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) ... 25 more 23:24:39,141 SequenceMediator Error while building message org.apache.axis2.AxisFault: Error while building Passthrough stream at org.apache.synapse.transport.passthru.util.RelayUtils.handleException(RelayUtils.java:236) at org.apache.synapse.transport.passthru.util.RelayUtils.builldMessage(RelayUtils.java:111) at org.apache.synapse.transport.passthru.util.RelayUtils.buildMessage(RelayUtils.java:82) at
Re: [Dev] Converting JSON to SOAP and vise versa in ESB
Hi Uvindra, According to the website, they expect content-length header in the request. You can use the below two property mediators to send the content-length always. property name=FORCE_HTTP_CONTENT_LENGTH value=true scope=axis2/property property name=COPY_CONTENT_LENGTH_FROM_INCOMING value=true scope=axis2/property Try the above properties prior to the send mediator. Thanks, Chanaka On Fri, Feb 6, 2015 at 11:28 PM, Uvindra Dias Jayasinha uvin...@wso2.com wrote: Ok tried that Dushan, but now I get a different exception when I hit the insequence 23:24:38,849 LogMediator IN_MESSAGE = IN_MESSAGE 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.AbstractListMediator.mediate(AbstractListMediator.java:47) at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:131) at org.apache.synapse.rest.Resource.process(Resource.java:297) at org.apache.synapse.rest.API.process(API.java:298) at org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:76) at org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:50) at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:220) at org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:488) at org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:170) 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:895) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) 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) ... 25 more 23:24:39,141 SequenceMediator Error while building message org.apache.axis2.AxisFault: Error while building Passthrough stream at org.apache.synapse.transport.passthru.util.RelayUtils.handleException(RelayUtils.java:236) at org.apache.synapse.transport.passthru.util.RelayUtils.builldMessage(RelayUtils.java:111) 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.AbstractListMediator.mediate(AbstractListMediator.java:47) at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:131) at org.apache.synapse.rest.Resource.process(Resource.java:297) at
Re: [Dev] Converting JSON to SOAP and vise versa in ESB
Your API should be as. api xmlns=http://ws.apache.org/ns/synapse; name=tempAPI context=/temp resource methods=POST GET inSequence log level=custom property name=IN_MESSAGE value=IN_MESSAGE/property /log property name=messageType value=application/xml scope=axis2/property * property name=FORCE_HTTP_1.0 value=true scope=axis2/property* * property name=DISABLE_CHUNKING value=true scope=axis2/property* payloadFactory media-type=xml format soapenv:Envelope xmlns:soapenv= http://schemas.xmlsoap.org/soap/envelope/; xmlns:web= http://www.w3schools.com/webservices/; soapenv:Header/soapenv:Header soapenv:Body web:CelsiusToFahrenheit web:Celsius$1/web:Celsius /web:CelsiusToFahrenheit /soapenv:Body /soapenv:Envelope /format args arg evaluator=json expression=$.celsius/arg /args /payloadFactory send endpoint address uri= http://www.w3schools.com/webservices/tempconvert.asmx?op=CelsiusToFahrenheit; format=soap11/address /endpoint /send /inSequence outSequence log level=custom property name=OUT_MESSAGE value=OUT_MESSAGE/property /log property name=messageType value=application/json scope=axis2/property payloadFactory media-type=xml format Temp xmlns=$1/Temp /format args arg xmlns:foo=http://www.w3schools.com/webservices/; evaluator=xml expression=//foo:CelsiusToFahrenheitResponse/foo:CelsiusToFahrenheitResult/arg /args /payloadFactory send/send /outSequence /resource /api xxx-MacBook-Pro:bin dushan$ curl -i -POST -H 'Accept: application/json' -H 'Content-Type:application/json' -d '{celsius:12}' http://192.168.56.1:8281/temp HTTP/1.1 200 OK X-AspNet-Version: 4.0.30319 Content-Type: application/json X-Powered-By: ASP.NET Cache-Control: private, max-age=0,public Date: Fri, 06 Feb 2015 17:19:20 GMT Server: WSO2-PassThrough-HTTP Transfer-Encoding: chunked {Temp:53.6}xxx-xxx-Pro:bin xx$ On Thu, Feb 5, 2015 at 1:10 AM, Uvindra Dias Jayasinha uvin...@wso2.com wrote: Thanks Sampath and Asanka, Tried both your suggestions and now Im getting different exception RelayUtils Error while building Passthrough stream org.apache.axiom.om.OMException: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[3,68] Message: DOCTYPE is not allowed at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:296) at org.apache.axiom.om.impl.llom.OMDocumentImpl.getOMDocumentElement(OMDocumentImpl.java:109) at org.apache.axiom.om.impl.builder.StAXOMBuilder.getDocumentElement(StAXOMBuilder.java:570) at org.apache.axiom.om.impl.builder.StAXOMBuilder.getDocumentElement(StAXOMBuilder.java:566) at org.apache.synapse.transport.passthru.util.DeferredMessageBuilder.getDocument(DeferredMessageBuilder.java:129) 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.AbstractListMediator.mediate(AbstractListMediator.java:47) at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:131) at org.apache.synapse.rest.Resource.process(Resource.java:297) at org.apache.synapse.rest.API.process(API.java:298) at org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:76) at org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:50) at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:220) at org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:488) at org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:170) 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:895) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) at
Re: [Dev] Converting JSON to SOAP and vise versa in ESB
Ok tried that Dushan, but now I get a different exception when I hit the insequence 23:24:38,849 LogMediator IN_MESSAGE = IN_MESSAGE 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.AbstractListMediator.mediate(AbstractListMediator.java:47) at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:131) at org.apache.synapse.rest.Resource.process(Resource.java:297) at org.apache.synapse.rest.API.process(API.java:298) at org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:76) at org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:50) at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:220) at org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:488) at org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:170) 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:895) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) 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) ... 25 more 23:24:39,141 SequenceMediator Error while building message org.apache.axis2.AxisFault: Error while building Passthrough stream at org.apache.synapse.transport.passthru.util.RelayUtils.handleException(RelayUtils.java:236) at org.apache.synapse.transport.passthru.util.RelayUtils.builldMessage(RelayUtils.java:111) 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.AbstractListMediator.mediate(AbstractListMediator.java:47) at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:131) at org.apache.synapse.rest.Resource.process(Resource.java:297) at org.apache.synapse.rest.API.process(API.java:298) at org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:76) at org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:50) at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:220) at org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:488) at org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:170) at
Re: [Dev] Converting JSON to SOAP and vise versa in ESB
Thanks Sampath and Asanka, Tried both your suggestions and now Im getting different exception RelayUtils Error while building Passthrough stream org.apache.axiom.om.OMException: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[3,68] Message: DOCTYPE is not allowed at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:296) at org.apache.axiom.om.impl.llom.OMDocumentImpl.getOMDocumentElement(OMDocumentImpl.java:109) at org.apache.axiom.om.impl.builder.StAXOMBuilder.getDocumentElement(StAXOMBuilder.java:570) at org.apache.axiom.om.impl.builder.StAXOMBuilder.getDocumentElement(StAXOMBuilder.java:566) at org.apache.synapse.transport.passthru.util.DeferredMessageBuilder.getDocument(DeferredMessageBuilder.java:129) 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.AbstractListMediator.mediate(AbstractListMediator.java:47) at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:131) at org.apache.synapse.rest.Resource.process(Resource.java:297) at org.apache.synapse.rest.API.process(API.java:298) at org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:76) at org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:50) at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:220) at org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:488) at org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:170) 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:895) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) at java.lang.Thread.run(Thread.java:662) Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[3,68] Message: DOCTYPE is not allowed 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) ... 22 more 11:30:13,251 SequenceMediator Error while building message org.apache.axis2.AxisFault: Error while building Passthrough stream at org.apache.synapse.transport.passthru.util.RelayUtils.handleException(RelayUtils.java:236) at org.apache.synapse.transport.passthru.util.RelayUtils.builldMessage(RelayUtils.java:111) 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.AbstractListMediator.mediate(AbstractListMediator.java:47) at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:131) at org.apache.synapse.rest.Resource.process(Resource.java:297) at org.apache.synapse.rest.API.process(API.java:298) at org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:76) at org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:50) at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:220) at org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:488) at org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:170) 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:895) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) at java.lang.Thread.run(Thread.java:662) Caused
[Dev] Converting JSON to SOAP and vise versa in ESB
Im trying out Payload and Script mediator functionality to call this SOAP service, http://www.w3schools.com/webservices/tempconvert.asmx?op=CelsiusToFahrenheit by simulating a REST API using ESB 4.8.1, here is the synapse configuration I have defined api xmlns=http://ws.apache.org/ns/synapse; name=tempAPI context=/temp resource methods=POST GET inSequence log level=custom property name=IN_MESSAGE value=IN_MESSAGE/property /log property name=messageType value=application/xml scope=axis2/property payloadFactory media-type=xml format soapenv:Envelope xmlns:soapenv= http://schemas.xmlsoap.org/soap/envelope/; xmlns:web= http://www.w3schools.com/webservices/; soapenv:Header/soapenv:Header soapenv:Body web:CelsiusToFahrenheit web:Celsius$1/web:Celsius /web:CelsiusToFahrenheit /soapenv:Body /soapenv:Envelope /format args arg evaluator=json expression=$.celsius/arg /args /payloadFactory send endpoint address uri= http://www.w3schools.com/webservices/tempconvert.asmx?op=CelsiusToFahrenheit; format=soap11/address /endpoint /send /inSequence outSequence log level=custom property name=OUT_MESSAGE value=OUT_MESSAGE/property /log property name=messageType value=application/json scope=axis2/property script language=jsvar temp = mc.getPayloadXML()..*::CelsiusToFahrenheitResponse.CelsiusToFahrenheitResult.toString(); mc.setPayloadJSON({ Temp : {Faran : temp} });/script send/send /outSequence /resource /api When I invoke the above using, curl -i -POST -H 'Accept: application/json' -d '{celsius:12}' http://IP Address:8280/api context I get the following exception, 6:53:00,577 RelayUtils Error while building Passthrough stream java.lang.StringIndexOutOfBoundsException: String index out of range: -1 at java.lang.String.substring(String.java:1937) at org.apache.axis2.builder.XFormURLEncodedBuilder.extractParametersFromRequest(XFormURLEncodedBuilder.java:174) at org.apache.axis2.builder.XFormURLEncodedBuilder.processDocument(XFormURLEncodedBuilder.java:112) at org.apache.synapse.commons.builders.XFormURLEncodedBuilder.processDocument(XFormURLEncodedBuilder.java:36) 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.AbstractListMediator.mediate(AbstractListMediator.java:47) at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:131) at org.apache.synapse.rest.Resource.process(Resource.java:297) at org.apache.synapse.rest.API.process(API.java:341) at org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:76) at org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:63) at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:220) at org.apache.synapse.core.axis2.SynapseMessageReceiver.receive(SynapseMessageReceiver.java:83) at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180) at org.apache.synapse.transport.passthru.ServerWorker.processNonEntityEnclosingRESTHandler(ServerWorker.java:344) at org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:385) at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:183) at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) at java.lang.Thread.run(Thread.java:662) 06:53:00,578 SequenceMediator Error while building message org.apache.axis2.AxisFault: Error while building Passthrough stream at org.apache.synapse.transport.passthru.util.RelayUtils.handleException(RelayUtils.java:236) at org.apache.synapse.transport.passthru.util.RelayUtils.builldMessage(RelayUtils.java:111) at org.apache.synapse.transport.passthru.util.RelayUtils.buildMessage(RelayUtils.java:82) at
Re: [Dev] Converting JSON to SOAP and vise versa in ESB
Hi Uvindra, Try like below. payloadFactory media-type=xml format web:CelsiusToFahrenheit xmlns:web= http://www.w3schools.com/webservices/; web:Celsius$1/web:Celsius /web:CelsiusToFahrenheit /format args arg evaluator=json expression=json-eval($.celsius)/arg /args /payloadFactory Cheers! On Wed, Feb 4, 2015 at 9:03 PM, Uvindra Dias Jayasinha uvin...@wso2.com wrote: Im trying out Payload and Script mediator functionality to call this SOAP service, http://www.w3schools.com/webservices/tempconvert.asmx?op=CelsiusToFahrenheit by simulating a REST API using ESB 4.8.1, here is the synapse configuration I have defined api xmlns=http://ws.apache.org/ns/synapse; name=tempAPI context=/temp resource methods=POST GET inSequence log level=custom property name=IN_MESSAGE value=IN_MESSAGE/property /log property name=messageType value=application/xml scope=axis2/property payloadFactory media-type=xml format soapenv:Envelope xmlns:soapenv= http://schemas.xmlsoap.org/soap/envelope/; xmlns:web= http://www.w3schools.com/webservices/; soapenv:Header/soapenv:Header soapenv:Body web:CelsiusToFahrenheit web:Celsius$1/web:Celsius /web:CelsiusToFahrenheit /soapenv:Body /soapenv:Envelope /format args arg evaluator=json expression=$.celsius/arg /args /payloadFactory send endpoint address uri= http://www.w3schools.com/webservices/tempconvert.asmx?op=CelsiusToFahrenheit; format=soap11/address /endpoint /send /inSequence outSequence log level=custom property name=OUT_MESSAGE value=OUT_MESSAGE/property /log property name=messageType value=application/json scope=axis2/property script language=jsvar temp = mc.getPayloadXML()..*::CelsiusToFahrenheitResponse.CelsiusToFahrenheitResult.toString(); mc.setPayloadJSON({ Temp : {Faran : temp} });/script send/send /outSequence /resource /api When I invoke the above using, curl -i -POST -H 'Accept: application/json' -d '{celsius:12}' http://IP Address:8280/api context I get the following exception, 6:53:00,577 RelayUtils Error while building Passthrough stream java.lang.StringIndexOutOfBoundsException: String index out of range: -1 at java.lang.String.substring(String.java:1937) at org.apache.axis2.builder.XFormURLEncodedBuilder.extractParametersFromRequest(XFormURLEncodedBuilder.java:174) at org.apache.axis2.builder.XFormURLEncodedBuilder.processDocument(XFormURLEncodedBuilder.java:112) at org.apache.synapse.commons.builders.XFormURLEncodedBuilder.processDocument(XFormURLEncodedBuilder.java:36) 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.AbstractListMediator.mediate(AbstractListMediator.java:47) at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:131) at org.apache.synapse.rest.Resource.process(Resource.java:297) at org.apache.synapse.rest.API.process(API.java:341) at org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:76) at org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:63) at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:220) at org.apache.synapse.core.axis2.SynapseMessageReceiver.receive(SynapseMessageReceiver.java:83) at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180) at org.apache.synapse.transport.passthru.ServerWorker.processNonEntityEnclosingRESTHandler(ServerWorker.java:344) at org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:385) at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:183) at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172) at
Re: [Dev] Converting JSON to SOAP and vise versa in ESB
Hi Uvindra, Seems message failing during the building. And it picks the wrong formatter it seems. Set the content header in the curl as follows. curl -i -POST -H 'Accept: application/json' -H 'Content-Type:application/json' -d '{celsius:12}' http://IP Address:8280/api context Thanks, Asanka D On Wed, Feb 4, 2015 at 9:03 PM, Uvindra Dias Jayasinha uvin...@wso2.com wrote: Im trying out Payload and Script mediator functionality to call this SOAP service, http://www.w3schools.com/webservices/tempconvert.asmx?op=CelsiusToFahrenheit by simulating a REST API using ESB 4.8.1, here is the synapse configuration I have defined api xmlns=http://ws.apache.org/ns/synapse; name=tempAPI context=/temp resource methods=POST GET inSequence log level=custom property name=IN_MESSAGE value=IN_MESSAGE/property /log property name=messageType value=application/xml scope=axis2/property payloadFactory media-type=xml format soapenv:Envelope xmlns:soapenv= http://schemas.xmlsoap.org/soap/envelope/; xmlns:web= http://www.w3schools.com/webservices/; soapenv:Header/soapenv:Header soapenv:Body web:CelsiusToFahrenheit web:Celsius$1/web:Celsius /web:CelsiusToFahrenheit /soapenv:Body /soapenv:Envelope /format args arg evaluator=json expression=$.celsius/arg /args /payloadFactory send endpoint address uri= http://www.w3schools.com/webservices/tempconvert.asmx?op=CelsiusToFahrenheit; format=soap11/address /endpoint /send /inSequence outSequence log level=custom property name=OUT_MESSAGE value=OUT_MESSAGE/property /log property name=messageType value=application/json scope=axis2/property script language=jsvar temp = mc.getPayloadXML()..*::CelsiusToFahrenheitResponse.CelsiusToFahrenheitResult.toString(); mc.setPayloadJSON({ Temp : {Faran : temp} });/script send/send /outSequence /resource /api When I invoke the above using, curl -i -POST -H 'Accept: application/json' -d '{celsius:12}' http://IP Address:8280/api context I get the following exception, 6:53:00,577 RelayUtils Error while building Passthrough stream java.lang.StringIndexOutOfBoundsException: String index out of range: -1 at java.lang.String.substring(String.java:1937) at org.apache.axis2.builder.XFormURLEncodedBuilder.extractParametersFromRequest(XFormURLEncodedBuilder.java:174) at org.apache.axis2.builder.XFormURLEncodedBuilder.processDocument(XFormURLEncodedBuilder.java:112) at org.apache.synapse.commons.builders.XFormURLEncodedBuilder.processDocument(XFormURLEncodedBuilder.java:36) 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.AbstractListMediator.mediate(AbstractListMediator.java:47) at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:131) at org.apache.synapse.rest.Resource.process(Resource.java:297) at org.apache.synapse.rest.API.process(API.java:341) at org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:76) at org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:63) at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:220) at org.apache.synapse.core.axis2.SynapseMessageReceiver.receive(SynapseMessageReceiver.java:83) at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180) at org.apache.synapse.transport.passthru.ServerWorker.processNonEntityEnclosingRESTHandler(ServerWorker.java:344) at org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:385) at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:183) at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) at