2013-12-11 4 views
4

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

<!--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) 
+0

Что такое версия Wso2 esb, которую вы используете? – Vanji

ответ

0

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

Смежные вопросы