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 <[email protected]>
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 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 by: 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)
>     ... 17 more
> 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
>
> Any ideas?
>
>
> On 5 February 2015 at 07:48, Asanka Dissanayake <[email protected]> wrote:
>
>> 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 <[email protected]>
>> 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="js">var 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
>>> 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)
>>> Caused by: 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)
>>>
>>>
>>> Any idea what Im doing wrong? This should be straight forward, Thanks
>>>
>>> --
>>> Regards,
>>> Uvindra
>>>
>>> Mobile: 777733962
>>>
>>>
>>>
>>> _______________________________________________
>>> Dev mailing list
>>> [email protected]
>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>
>>>
>>
>>
>> --
>>
>>
>> *Asanka DissanayakeSoftware Engineer*
>> *WSO2 Inc. - lean . enterprise . middleware |  wso2.com
>> <http://wso2.com/>*
>>
>> *email: [email protected] <[email protected]>,   blog:
>> cyberwaadiya.blogspot.com
>> <http://cyberwaadiya.blogspot.com>, asankastechtalks.wordpress.com
>> <http://asankastechtalks.wordpress.com>  mobile: +94 71 8373821*
>>
>
>
>
> --
> Regards,
> Uvindra
>
> Mobile: 777733962
>
> _______________________________________________
> Dev mailing list
> [email protected]
> http://wso2.org/cgi-bin/mailman/listinfo/dev
>
>


-- 
Dushan Abeyruwan | Associate Tech Lead
Integration Technologies Team
PMC Member Apache Synpase
WSO2 Inc. http://wso2.com/
Blog:http://dushansview.blogspot.com/
Mobile:(0094)713942042
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to