wso2 esb xml到json返回base64

时间:2014-09-17 20:39:19

标签: xml json wso2 wso2esb

我在ESB 4.8.1中定义了一个代理服务,它只能膨胀,返回xml。现在我想要JSON。看起来很简单。我只是添加

<property name="messageType" value="application/json" scope="axis2"/>

到我的inSequence。以某种方式工作。我得到不同的输出。实际上是JSON,但是base64编码的JSON。我更喜欢文字,至少在目前,因为它更容易看到发生了什么。

我有另一个问题。当我解码输出时,我得到了这个:

{"Fault":{"faultcode":"axis2ns6:Client","faultstring":"The endpoint reference (EPR) for the Operation not found is /services/profiles and the WSA Action = null. If this EPR was previously reachable, pl\
ease contact the server administrator.","detail":""}}

如果删除messageType =“application / json”属性,我会得到正确/正确的xml响应。想法?

这是我的代理服务定义:

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="getaccount2"
       transports="https,http"
       statistics="disable"
       trace="disable"
       startOnLoad="true">
   <target>
      <inSequence>
         <log level="full"/>
         <property name="messageType" value="application/json" scope="axis2"/>
      </inSequence>
      <outSequence>
         <log level="full"/>
         <send/>
      </outSequence>
      <endpoint>
         <address uri="http://10.2.8.1:9763/services/profiles"/>
      </endpoint>
   </target>
   <publishWSDL uri="http://10.2.8.1:9763/services/profiles?wsdl2"/>
   <description/>
</proxy>

1 个答案:

答案 0 :(得分:2)

您在inSequence中定义<property name="messageType" value="application/json" scope="axis2"/>,这意味着您在http://10.2.8.1:9763/services/profiles监听的服务会收到带有json有效负载的请求:但是在您的代理def中,我们可以看到它是等待的Web服务用于SOAP请求。

如果要在代理中转换json中的SOAP响应,则必须移动&#39; messageType&#39; outSequence中的属性定义,在发送中介之前。