0
votes

I've created a proxy to tweet using WSO2 ESB Twitter connector. My Tweet proxy looks like this.

 <?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>

The project was deployed without any errors but when ever i make a POST request to Tweet from Postman im getting an error status of 170 with a message Missing required parameter: status. The Post request consist of a json like this.

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

In the ESB sever console it gives an error like this

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

Any particular reason why im getting this error?. How to overcome this?.

1

1 Answers

1
votes

Change the property expression like this.

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