我有一个脚本调解器,我设置了一个特定的值(mc.setProperty(“x”,1))并且在脚本调解器之后我立即设置了一个PayloadFactory调解器,我试图获取值x(get-property(“x”))。我在中介逻辑之间使用了Log mediator来检查是否设置了属性值。但是没有设定价值。我正在使用js作为Script mediator。
答案 0 :(得分:1)
你能试试以下吗?这可以使用WSO2 ESB 5.0.0
<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
name="TestProxy"
startOnLoad="true"
statistics="disable"
trace="disable"
transports="http,https">
<target>
<inSequence>
<script language="js">mc.setProperty("x", 1);</script>
<log level="custom">
<property expression="get-property('x')" name="x"/>
</log>
<payloadFactory media-type="xml">
<format>
<value xmlns="">$1</value>
</format>
<args>
<arg evaluator="xml" expression="get-property('x')"/>
</args>
</payloadFactory>
<respond/>
</inSequence>
</target>
<description/>
</proxy>
答案 1 :(得分:1)
我有同样的问题。我通过在脚本中添加调用函数“String”来解决它。
像 -
<script language="js"><![CDATA[
mc.setProperty("x", String(1));
]]></script>
<log level="custom">
<property expression="get-property('x')" name="x" xmlns:ns="http://org.apache.synapse/xsd"/>
</log>