I am doing some very simple script mediation as a test to see if I can change the payload being returned by my server.
My unmediated payload comes out as:
{"origin":"202.37.75.130"}
Then I try doing a very simple check to see whether get and set work for payloads:
<script language="js">
var older = mc.getPayloadJSON();
var newer=older;
mc.setPayloadJSON(newer);
</script>
My result from this is:
{"jsonObject":""}
I have done testing that shows that setPayloadJSON() works, which means that my getPayloadJSON must be returning an empty object.
Looking at the log file shows this:
ERROR {org.apache.synapse.mediators.bsf.ScriptMessageContext} - JSON object is null. {org.apache.synapse.mediators.bsf.ScriptMessageContext}
Is there anyone else having this error?
Just in case someone has the same issue, I managed to get mine working.
I had to do a workaround method:
property name="JSONPayload" expression="json-eval($.)"
var pl_string = mc.getProperty("JSONPayload");
var pl = JSON.parse(pl_string);
getPayloadJSON().I know it's a hacked together method, but none of the other ways were working for me so I tried this one.
Some information in case anyone wants to debug it:
I'm using API Manager 1.7.
I set the message builders and formatters to these: Builder class = "org.apache.synapse.commons.json.JsonStreamBuilder" Formatter class = "org.apache.synapse.commons.json.JsonStreamFormatter"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With