Hi Malinttha,

Try with [1] in the proxy instead of "text/xml".

[1] - <property name="messageType" value="application/xml" scope="axis2"
type="STRING"/>

Thanks,

On 18 December 2016 at 13:19, Malintha Amarasinghe <[email protected]>
wrote:

> Hi all,
>
> I am seeing error [1] in ESB 5.0.0 and 4.9.0 while checking SOAP <-> JSON
> conversion via a proxy. I have attached the Proxy and the sample backend
> API (json) I used.
>
> When invoke the proxy using the following curl command I can see the error
> [1] and client is not getting any response.
>
> curl http://localhost:8280/services/Soap2JsonProxy -X POST -H
> "Content-Type: text/xml" -H 'SOAPAction: "urn:getVersion"'
>
> But the error goes away if I used following message builder and formatter
> for application/json content type. And client gets the converted json to
> soap payload successfully.
>
>    <messageBuilder contentType="application/json"
>                           class="org.apache.synapse.
> commons.json.JsonBuilder"/>
>
>    <messageFormatter contentType="application/json"
>                         class="org.apache.synapse.
> commons.json.JsonFormatter"/>
>
> Is this a limitation/bug or am I doing something wrong?
>
> [1] [2016-12-19 00:34:15,306] ERROR - PassThroughHttpSender Failed to
> submit the response
> org.apache.axis2.AxisFault: Can not output XML declaration, after other
> output has already been done.
> at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)
> at org.apache.axis2.transport.http.SOAPMessageFormatter.
> writeTo(SOAPMessageFormatter.java:78)
> at org.apache.synapse.transport.passthru.PassThroughHttpSender.
> submitResponse(PassThroughHttpSender.java:555)
> at org.apache.synapse.transport.passthru.PassThroughHttpSender.invoke(
> PassThroughHttpSender.java:264)
> at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:442)
> at org.apache.synapse.core.axis2.Axis2Sender.sendBack(
> Axis2Sender.java:222)
> at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(
> Axis2SynapseEnvironment.java:531)
> at org.apache.synapse.mediators.builtin.SendMediator.mediate(
> SendMediator.java:118)
> at org.apache.synapse.mediators.AbstractListMediator.mediate(
> AbstractListMediator.java:97)
> at org.apache.synapse.mediators.AbstractListMediator.mediate(
> AbstractListMediator.java:59)
> at org.apache.synapse.mediators.base.SequenceMediator.mediate(
> SequenceMediator.java:158)
> at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(
> Axis2SynapseEnvironment.java:337)
> at org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(
> SynapseCallbackReceiver.java:554)
> at org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(
> SynapseCallbackReceiver.java:188)
> at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
> at org.apache.synapse.transport.passthru.ClientWorker.run(
> ClientWorker.java:261)
> at org.apache.axis2.transport.base.threads.NativeWorkerPool$
> 1.run(NativeWorkerPool.java:172)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(
> ThreadPoolExecutor.java:1145)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(
> ThreadPoolExecutor.java:615)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: javax.xml.stream.XMLStreamException: Can not output XML
> declaration, after other output has already been done.
> at com.ctc.wstx.sw.BaseStreamWriter.throwOutputError(
> BaseStreamWriter.java:1522)
> at com.ctc.wstx.sw.BaseStreamWriter.reportNwfStructure(
> BaseStreamWriter.java:1551)
> at com.ctc.wstx.sw.BaseStreamWriter.doWriteStartDocument(
> BaseStreamWriter.java:650)
> at com.ctc.wstx.sw.BaseStreamWriter.writeStartDocument(
> BaseStreamWriter.java:638)
> at com.ctc.wstx.sw.BaseStreamWriter.writeStartDocument(
> BaseStreamWriter.java:626)
> at org.apache.axiom.om.impl.MTOMXMLStreamWriter.writeStartDocument(
> MTOMXMLStreamWriter.java:277)
> at org.apache.synapse.commons.json.JsonDataSource.serialize(
> JsonDataSource.java:88)
> at org.apache.axiom.om.impl.llom.OMSourcedElementImpl.internalSerialize(
> OMSourcedElementImpl.java:691)
> at org.apache.axiom.om.impl.util.OMSerializerUtil.serializeChildren(
> OMSerializerUtil.java:562)
> at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(
> OMElementImpl.java:875)
> at org.apache.axiom.soap.impl.llom.SOAPEnvelopeImpl.serializeInternally(
> SOAPEnvelopeImpl.java:283)
> at org.apache.axiom.soap.impl.llom.SOAPEnvelopeImpl.internalSerialize(
> SOAPEnvelopeImpl.java:245)
> at org.apache.axiom.om.impl.llom.OMSerializableImpl.serializeAndConsume(
> OMSerializableImpl.java:193)
> at org.apache.axis2.transport.http.SOAPMessageFormatter.
> writeTo(SOAPMessageFormatter.java:74)
> ... 18 more
> [2016-12-19 00:34:15,309] ERROR - Axis2Sender Accept:*/*,Content-Type:text/
> xml,Host:localhost:8283,SOAPAction:,<?xml version='1.0'
> encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.
> xmlsoap.org/soap/envelope/"><soapenv:Body><jsonObject><
> hello>world</hello></jsonObject></soapenv:Body></soapenv:Envelope>
> Unexpected error sending message back
> org.apache.axis2.AxisFault: Failed to submit the response
> at org.apache.synapse.transport.passthru.PassThroughHttpSender.
> handleException(PassThroughHttpSender.java:613)
> at org.apache.synapse.transport.passthru.PassThroughHttpSender.invoke(
> PassThroughHttpSender.java:266)
> at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:442)
> at org.apache.synapse.core.axis2.Axis2Sender.sendBack(
> Axis2Sender.java:222)
> at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(
> Axis2SynapseEnvironment.java:531)
> at org.apache.synapse.mediators.builtin.SendMediator.mediate(
> SendMediator.java:118)
> at org.apache.synapse.mediators.AbstractListMediator.mediate(
> AbstractListMediator.java:97)
> at org.apache.synapse.mediators.AbstractListMediator.mediate(
> AbstractListMediator.java:59)
> at org.apache.synapse.mediators.base.SequenceMediator.mediate(
> SequenceMediator.java:158)
> at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(
> Axis2SynapseEnvironment.java:337)
> at org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(
> SynapseCallbackReceiver.java:554)
> at org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(
> SynapseCallbackReceiver.java:188)
> at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
> at org.apache.synapse.transport.passthru.ClientWorker.run(
> ClientWorker.java:261)
> at org.apache.axis2.transport.base.threads.NativeWorkerPool$
> 1.run(NativeWorkerPool.java:172)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(
> ThreadPoolExecutor.java:1145)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(
> ThreadPoolExecutor.java:615)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: org.apache.axis2.AxisFault: Can not output XML declaration,
> after other output has already been done.
> at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)
> at org.apache.axis2.transport.http.SOAPMessageFormatter.
> writeTo(SOAPMessageFormatter.java:78)
> at org.apache.synapse.transport.passthru.PassThroughHttpSender.
> submitResponse(PassThroughHttpSender.java:555)
> at org.apache.synapse.transport.passthru.PassThroughHttpSender.invoke(
> PassThroughHttpSender.java:264)
> ... 16 more
> Caused by: javax.xml.stream.XMLStreamException: Can not output XML
> declaration, after other output has already been done.
> at com.ctc.wstx.sw.BaseStreamWriter.throwOutputError(
> BaseStreamWriter.java:1522)
> at com.ctc.wstx.sw.BaseStreamWriter.reportNwfStructure(
> BaseStreamWriter.java:1551)
> at com.ctc.wstx.sw.BaseStreamWriter.doWriteStartDocument(
> BaseStreamWriter.java:650)
> at com.ctc.wstx.sw.BaseStreamWriter.writeStartDocument(
> BaseStreamWriter.java:638)
> at com.ctc.wstx.sw.BaseStreamWriter.writeStartDocument(
> BaseStreamWriter.java:626)
> at org.apache.axiom.om.impl.MTOMXMLStreamWriter.writeStartDocument(
> MTOMXMLStreamWriter.java:277)
> at org.apache.synapse.commons.json.JsonDataSource.serialize(
> JsonDataSource.java:88)
> at org.apache.axiom.om.impl.llom.OMSourcedElementImpl.internalSerialize(
> OMSourcedElementImpl.java:691)
> at org.apache.axiom.om.impl.util.OMSerializerUtil.serializeChildren(
> OMSerializerUtil.java:562)
> at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(
> OMElementImpl.java:875)
> at org.apache.axiom.soap.impl.llom.SOAPEnvelopeImpl.serializeInternally(
> SOAPEnvelopeImpl.java:283)
> at org.apache.axiom.soap.impl.llom.SOAPEnvelopeImpl.internalSerialize(
> SOAPEnvelopeImpl.java:245)
> at org.apache.axiom.om.impl.llom.OMSerializableImpl.serializeAndConsume(
> OMSerializableImpl.java:193)
> at org.apache.axis2.transport.http.SOAPMessageFormatter.
> writeTo(SOAPMessageFormatter.java:74)
> ... 18 more
> [2016-12-19 00:34:15,315]  INFO - LogMediator To:
> http://www.w3.org/2005/08/addressing/anonymous, WSAction: , SOAPAction: ,
> MessageID: urn:uuid:51caa894-6154-4e5d-9440-26c3488788bf, Direction:
> response, MESSAGE = Executing default 'fault' sequence, ERROR_CODE = 0,
> ERROR_MESSAGE = 
> Accept:*/*,Content-Type:text/xml,Host:localhost:8283,SOAPAction:,<?xml
> version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="
> http://schemas.xmlsoap.org/soap/envelope/";><soapenv:Body><jsonObject><
> hello>world</hello></jsonObject></soapenv:Body></soapenv:Envelope>
> Unexpected error sending message back, Payload: { "hello" : "world" }
>
>
> Thanks!
> Malintha
>
> --
> Malintha Amarasinghe
> Software Engineer
> *WSO2, Inc. - lean | enterprise | middleware*
> http://wso2.com/
>
> Mobile : +94 712383306 <071%20238%203306>
>
> _______________________________________________
> Dev mailing list
> [email protected]
> http://wso2.org/cgi-bin/mailman/listinfo/dev
>
>


-- 
Rajith Vitharana

Senior Software Engineer,
WSO2 Inc. : wso2.com
Mobile : +94715883223
Blog : http://lankavitharana.blogspot.com/
<http://wso2.com/signature>
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to