WSO2 ESB - 无法访问有效内容介体中脚本介体中设置的属性

时间:2017-08-15 07:55:26

标签: wso2 wso2esb

我有一个脚本调解器,我设置了一个特定的值(mc.setProperty(“x”,1))并且在脚本调解器之后我立即设置了一个PayloadFactory调解器,我试图获取值x(get-property(“x”))。我在中介逻辑之间使用了Log mediator来检查是否设置了属性值。但是没有设定价值。我正在使用js作为Script mediator。

2 个答案:

答案 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>