Формат JSON в посреднике WSO2 ESB PayloadFactory

Посредник PayloadFactory Я использую строку формата JSON. Проблема в том, что когда я включаю следующие строки в /repository/conf/axis2/axis2.xml, запрос POST работает нормально, но запрос GET вызывает сообщение об ошибке.

<!--messageFormatter contentType="application/json"
class="org.apache.axis2.json.JSONStreamFormatter"/-->
<!--messageBuilder contentType="application/json"
class="org.apache.axis2.json.JSONStreamBuilder"/-->

Вот шаблон ESB для PayPal. Список всех платежных ресурсов:

<template name="listPaymentResources" xmlns="http://ws.apache.org/ns/synapse">
  <sequence class="sequence">
    <payloadFactory media-type="json">
      <format>
        {}
      </format>
    </payloadFactory>
    <property name="messageType" scope="axis2" value="application/json" />
    <call>
      <endpoint>
        <http method="get" uri-template="{uri.var.paypalUrl}/v1/payments/payment"/>
      </endpoint>
    </call>
  </sequence>
</template>

Прокси-сервис:

<?xml version="1.0" encoding="UTF-8"?>
    <proxy xmlns="http://ws.apache.org/ns/synapse"
           name="listPaymentResources"
           transports="https,http"
           statistics="disable"
           trace="disable"
           startOnLoad="true">
       <target>
          <inSequence>
             <property xmlns:ns="uri.var.payment"
                       name="ppurl"
                       expression="//ns:paypalurl/text()"/>
             <PayPal.config>
                <appUri>{$ctx:ppurl}</appUri>
             </PayPal.config>
             <PayPal.listPaymentResources/>
             <respond/>
          </inSequence>
          <outSequence>
             <log/>
             <send/>
          </outSequence>
       </target>
       <description/>
    </proxy>

Журнал ошибок:

[2013-12-11 17:25:10,971] ERROR - TargetHandler Unexpected error: Cannot get a J
SON writer
java.lang.UnsupportedOperationException: Cannot get a JSON writer
        at org.apache.axis2.json.JSONStreamFormatter.getJSONWriter(JSONStreamFor
matter.java:63)
        at org.apache.axis2.json.AbstractJSONMessageFormatter.getTargetAddress(A
bstractJSONMessageFormatter.java:228)
        at org.apache.synapse.transport.passthru.TargetRequest.start(TargetReque
st.java:152)
        at org.apache.synapse.transport.passthru.TargetHandler.requestReady(Targ
etHandler.java:136)
        at org.apache.http.impl.nio.DefaultNHttpClientConnection.produceOutput(D
efaultNHttpClientConnection.java:244)
        at org.apache.synapse.transport.http.conn.LoggingNHttpClientConnection.p
roduceOutput(LoggingNHttpClientConnection.java:112)
        at org.apache.synapse.transport.passthru.ClientIODispatch.onOutputReady(
ClientIODispatch.java:88)
        at org.apache.synapse.transport.passthru.ClientIODispatch.onOutputReady(
ClientIODispatch.java:41)
        at org.apache.http.impl.nio.reactor.AbstractIODispatch.outputReady(Abstr
actIODispatch.java:148) 

person Kunalan S    schedule 11.12.2013    source источник
comment
Какую версию Wso2 esb вы используете?   -  person Vanji    schedule 03.07.2014
comment
Не могли бы вы показать нам свои разделы messageBuilder и messageFormater в EI_HOME / conf / axis2 / axis2.xml?   -  person Robyn.D    schedule 04.06.2020


Ответы (1)


Я провел некоторое тестирование на эту тему в последней версии WSO2 ESB, и мне не удалось воспроизвести данную проблему.

person Vanji    schedule 03.08.2014