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
