【问题标题】:WSO2 ESB Collout address from Property or XPath-expression来自 Property 或 XPath-expression 的 WSO2 ESB Collout 地址
【发布时间】:2014-04-21 18:27:42
【问题描述】:

我有开发和生产部分的配置。此部分包含后端的 URL。在我的 inSequence 中,我需要它在每个请求中多次调用这些后端。

<config>
 <env>prod</env>
 <backend env="prod">http://localhost:1234/</backend>
 <backend env="dev">http://localhost:2345/</backend>
</config>

我从本地条目(作为 XML)读取此配置,并希望将标注的 URL 设置为属性。 我不想在我的代码中使用“Switch”语句对这些后端进行硬编码,因为可以使用两个以上的环境。 能给我举个例子吗?

谢谢。

【问题讨论】:

    标签: wso2 wso2esb


    【解决方案1】:

    您可以在注册表中读取 xml 文件。只需像这样定义 OM 类型的属性:

    <property name="test" expression="get-property('registry','conf:/test.xml')" scope="default" type="OM" />
    

    然后你可以通过这样的记录来查看值:

    <log level="custom"> <property name="test.b" expression="$ctx:test//b" /> </log>
    

    并且在您放入注册表根目录的 xml 文件中,您可以这样填写:

    <a>Hello<b>WSO2</b></a>
    

    我是从这个link学到的。

    【讨论】:

    • 我已经知道如何读取这些配置(我使用本地条目)。我的问题是如何将这些值用作 Callout 调解器的 URL。在我看来,Callout 像往常一样读取 URL 参数并且不进行任何 XPath 转换(因此无法将其设置为“get-property”表达式)
    【解决方案2】:

    我找到了答案。根据 Callout 调解员的来源:

    CalloutMediator.java

    如果未指定 URL,它将使用“To”标头。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-19
      • 2014-06-16
      • 1970-01-01
      相关资源
      最近更新 更多