【问题标题】:How to access service parameter from WSO2 ESB sequence如何从 WSO2 ESB 序列访问服务参数
【发布时间】:2015-01-14 18:54:20
【问题描述】:

我根据文档配置了代理服务参数:

<proxy xmlns="http://ws.apache.org/ns/synapse" name="CQProxy" transports="https,http" statistics="disable" trace="disable" startOnLoad="true">
   <target>
       ...
   </target>
   <parameter name="TestParam">ParamValue1</parameter>
</proxy>

现在我需要从序列中访问它。有什么办法吗?

我尝试使用脚本中介访问它:

 <script language="js">mc.setProperty("TestParamProp", mc.getParameter("TestParam"))</script>

但它会抛出“找不到函数 getParameter”。错误。

请指教。

【问题讨论】:

  • 你检查 mc.getParameter("$ctx:TestParam") 了吗?
  • 它也不起作用。问题是 mc.getParameter() 函数无法识别。

标签: wso2 wso2esb synapse


【解决方案1】:

使用以下命令从脚本中介访问 ESB 参数

<script language="js"> var test_param = mc.getProperty('TestParam') </script>

使用以下内容将脚本中介器中的参数检索回 ESB

mc.setProperty("newParam",test_param)

【讨论】:

  • 此子句将访问属性而不是参数
  • 这是不可能的,请参考以下网址[1]。您可以通过同时设置参数和属性并将属性值传递给脚本中介来实现此目的。 [1]stackoverflow.com/questions/17562087/…
  • 是的,似乎没有明确的方法可以从序列中访问代理服务参数。谢谢!
  • 您可以将其设置为属性并访问
【解决方案2】:

以 json 格式输入并尝试下面给出的代码,

<property name="TestParam" expression="json-eval($.TestParam)"></property>
<script language="js">
mc.setProperty("TestParamProp", mc.getProperty("TestParam"));
</script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多