Re: [Dev] Converting JSON to SOAP and vise versa in ESB

2015-02-08 Thread Uvindra Dias Jayasinha
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

2015-02-07 Thread Dushan Abeyruwan
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

2015-02-07 Thread Malaka Silva
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

2015-02-07 Thread Uvindra Dias Jayasinha
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

2015-02-07 Thread Harsha Kumara
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

2015-02-06 Thread Uvindra Dias Jayasinha
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

2015-02-06 Thread Chanaka Fernando
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

2015-02-06 Thread Dushan Abeyruwan
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

2015-02-06 Thread Uvindra Dias Jayasinha
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

2015-02-04 Thread Uvindra Dias Jayasinha
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

2015-02-04 Thread Uvindra Dias Jayasinha
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

2015-02-04 Thread Indika Sampath
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

2015-02-04 Thread Asanka Dissanayake
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