【问题标题】:Dynamic custom mediator parametres in wso2 ESBwso2 ESB 中的动态自定义中介参数
【发布时间】:2016-10-03 17:33:52
【问题描述】:

我使用文章 http://wso2.com/library/2898/http://wso2.com/library/2936/ 构建了自定义调解器。

看起来像这样:

<inSequence>
  <property expression="local-name($body/*[1])" name="method" scope="default" type="STRING"/>
  <MyMediator>
     <header>SomeHeader<header/>
     <topic>SomeTopic</topic>
  </MyMediator>
</inSequence>

它运作良好,但我没有解决一个问题,我如何动态更改标题和/或主题调解器参数的值?

当我尝试使用 get-property('method') 而不是 SomeHeader 时。像字符串一样传递到中介代码中,ebs没有计算出来。

我的问题是如何将自定义调解器参数的值更改为属性值?

【问题讨论】:

    标签: wso2 esb mediator


    【解决方案1】:

    您可以选择例如使用 {} 大括号来表示您的字符串是 XPath 请求。在您的中介中,如果您在第一个和最后一个位置找到 {},请使用 org.apache.synapse.util.xpath.SynapseXPath :使用您的 xpath({} 之间的字符串)创建一个新的 SynapseXPath 并使用 stringValueOf(theMessageContext)

    【讨论】:

      【解决方案2】:

      您不能将任何动态值传递给自定义中介,但您可以读取自定义中介中的任何属性。

      public boolean mediate(MessageContext mc) {
         String value = (String) mc.getProperty("SomeHeader");
      }
      

      【讨论】:

        【解决方案3】:

        当前实现不支持将表达式作为类中介属性。详情请参考Jira

        【讨论】:

          猜你喜欢
          • 2013-06-08
          • 2012-10-05
          • 2012-08-31
          • 2012-08-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多