如何在WSO2中获取soapenv内容?

时间:2017-11-08 02:46:10

标签: wso2 wso2esb

在这种情况下,我怎样才能获得" MyString" WSO2响应中的内容?

请求:

<payloadFactory media-type="json">
<format>{

          "Name" : "$1",        
          "group": "$3"
       }
</format>
<args>
     <arg evaluator="xml" expression="$ctx:Name"/>
     <arg evaluator="xml" expression="$ctx:group"/>
</args>
</payloadFactory>                
<call>
       <endpoint key="ep_Server"/>
</call>

响应:

 Direction: request, Envelope: <?xml version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><text xmlns="http://ws.apache.org/commons/ns/payload">{"MyString":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVc2VySWQiOjEsIlN5c3RlbUlkIjoyMSwiUHJvcGVydHlJZCI6OSwiSXNBZG1pbiI6ZmFsc2UsIkNyZWF0ZURhdGVUaW1lIjoiMjAxNy0xMS0wOFQxMDoyMjoxMi45MDA3MjE4KzA4OjAwIn0.k6FyUGwXOAeC63oGsPWz8ttwo1LeDG3vnTbw7dJ18GY"}</text></soapenv:Body></soapenv:Envelope>

2 个答案:

答案 0 :(得分:1)

试试这个。

 <log>
     <property name="MyString" expression="json-eval($.MyString)"></property>
 </log>

参考:https://docs.wso2.com/display/ESB500/JSON+Support

答案 1 :(得分:0)

在你的情况下,输出不是json它包含文本的xml,通常它表示你正在使用text / plain类型,我认为问题就在那里。 此外,您的输出与您的示例代码不匹配 您可以尝试在通话前提出以下信息:

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

您正在呼叫的服务正在返回的内容类型是什么?有效吗?如果不是,那么wso2 ei默认是考虑它的文本