2017-07-25 6 views
-3

私はwso2で比較的新しいですし、少し問題があります。私はすでにここにどのようにこの変換を行い、別の瞬間にそうすることができたのかと尋ねました。しかし、今、私は、スタックオーバーフローのために渡されたコードと同じことを実行しようとしました:XMLでjsonを変換できません

enter image description here

しかし、今、私が受けています:

<?xml version="1.0" encoding="UTF-8"?> 
<api context="/Test" name="JsonToXmlApi" xmlns="http://ws.apache.org/ns/synapse"> 
    <resource methods="POST" uri-template="/xml/"> 
     <inSequence> 
      <property name="messageType" scope="axis2" type="STRING" value="text/xml"/> 
      <header action="remove" name="To" scope="default"/> 
      <property name="RESPONSE" scope="default" type="STRING" value="true"/> 
      <send/> 
     </inSequence> 
     <outSequence/> 
     <faultSequence/> 
    </resource> 
</api> 

して送信同等の要求と、前に教えられたものでこのエラーは:

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.rest.Resource.process(Resource.java:343) 
     at org.apache.synapse.rest.API.process(API.java:399) 
     at org.apache.synapse.rest.RESTRequestHandler.apiProcess(RESTRequestHandler.java:123) 
     at org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:101) 
     at org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:69) 
     at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:304) 
     at org.apache.synapse.core.axis2.SynapseMessageReceiver.receive(SynapseMessageReceiver.java:75) 
     at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180) 
     at org.apache.synapse.transport.passthru.ServerWorker.processNonEntityEnclosingRESTHandler(ServerWorker.java:325) 
     at org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:371) 
     at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:151) 
     at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
     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) 
     ... 24 more 
[2017-07-25 15:35:50,646] ERROR - Axis2Sender Accept:*/*,Accept-Encoding:gzip, deflate, br,Accept-Language:pt-BR,pt;q=0.8,en-US;q=0.6,en;q=0.4,Cache-Control:no-cache,Content-Type:application/soap+xml,Host:localhost:8280,Origin:chrome-extension://fhbjgbiflinjbdggehcddcbncdddomop,Postman-Token:89253418-6c05-c959-5e21-2ce7555e0cb6,<?xml version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><jsonObject><location_response><name>cafe</name><tags>dsdsd</tags></location_response></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.rest.Resource.process(Resource.java:343) 
     at org.apache.synapse.rest.API.process(API.java:399) 
     at org.apache.synapse.rest.RESTRequestHandler.apiProcess(RESTRequestHandler.java:123) 
     at org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:101) 
     at org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:69) 
     at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:304) 
     at org.apache.synapse.core.axis2.SynapseMessageReceiver.receive(SynapseMessageReceiver.java:75) 
     at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180) 
     at org.apache.synapse.transport.passthru.ServerWorker.processNonEntityEnclosingRESTHandler(ServerWorker.java:325) 
     at org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:371) 
     at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:151) 
     at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
     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) 
     ... 22 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) 
     ... 24 more 

私はすでにインターネットにとstackoverflowの中で検索さが、解像度はいずれも、この問題に慣れていない私の場合には解決しました。 誰かが私を助けることができれば、私はかなり感謝しています。

ありがとうございます。

+0

ESBまたはAPIのどちらのバージョンを使用しますか? –

+0

私はwso2 esb 5.0.0とwso2ei 6.1.1で試しました。どちらも同じ問題がありました。 – FelipeF

+0

コンテンツタイプが正しく設定されていることを確認し、RESTクライアントの問題もチェックしてください。ここに投稿したサンプルAPIは正常に動作します。 –

答えて

-1

私はあなたのAPIの応答を間違いなく得ることができます。 "text/xml"ではなく "application/xml"をapiで試してください。

<property name="messageType" value="application/xml" scope="axis2" type="STRING"/> 
+0

こんにちはRajjaz。助けてくれてありがとう、私はあなたが私から渡ったものを試しましたが、仕事ではありません。リンク: 'http:// localhost:8280/Test/xml'が間違っていて、 'http:// localhost:8280/application/xml'と同じで、私はレスポンスを受け取れませんでした。 cmdで。私は正しい方法がわからないので、2つを試しました。 – FelipeF

+0

こんにちはRajjaz。あなたの助けをありがとう、私は解像度を見つけた、私の問題は、私はAPIのコードを変更したと私は人工物をチェックすることを忘れていた。私は今ダンプが間違っていますが、時には私は始まりに今私はそれのようなものをコミットします。患者からありがとう。 – FelipeF

0

あなたが共有しているAPIはうまくいきます。私は郵便配達員と上級のレストクライアントと努力しました。

jsonサポートの詳細については、https://docs.wso2.com/display/EI610/JSON+Supportを参照してください。 enter image description here

関連する問題