向WSO2 ESB发送POST请求时出错

时间:2017-05-13 12:21:21

标签: twitter wso2 wso2esb

我使用 WSO2 ESB Twitter连接器创建了推文代理。我的推文代理看起来像这样。

 <?xml version="1.0" encoding="UTF-8"?>
    <proxy name="Tweet" startOnLoad="true" trace="disable"
      transports="http https" xmlns="http://ws.apache.org/ns/synapse">
      <target>
        <inSequence>
          <property expression="json-eval($.message)" name="Tweet"
            scope="default" type="STRING"/>
          <twitter.init>
            <consumerKey>xxxxxxxxxx</consumerKey>
            <consumerSecret>xxxxxxxxxxxx</consumerSecret>
            <accessToken>xxxxxxxxxxxxx</accessToken>
            <accessTokenSecret>xxxxxxxxxx</accessTokenSecret>
          </twitter.init>
          <twitter.updateStatus>
            <status>{$ctx:Tweet}</status>
          </twitter.updateStatus>
          <respond/>
        </inSequence>
        <outSequence/>
        <faultSequence/>
      </target>
    </proxy>

项目部署时没有任何错误,但是当我从Postman发出推文的POST请求时,我的错误状态为 170 ,并显示消息缺少必需参数:状态。 Post请求包含这样的json。

 {"Content-Type":"application/json","payload":"{\"message\":\"Hellow WSO2 ESB!!!! #WSO2 #Test\"}"}

在ESB服务器控制台中,它会出现如下错误

ERROR - SynapseJsonPath #stringValueOf. Error evaluating JSON Path <$.message>. Returning empty result. Error>>> invalid path

我得到此错误的任何特殊原因?如何克服这个?。

1 个答案:

答案 0 :(得分:1)

像这样更改属性表达式。

expression="json-eval($.payload.message)"