我使用 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
我得到此错误的任何特殊原因?如何克服这个?。
答案 0 :(得分:1)
像这样更改属性表达式。
expression="json-eval($.payload.message)"