WSO2 ESB从属性或XPath表达式中输出地址

WSO2 ESB从属性或XPath表达式中输出地址,wso2,wso2esb,Wso2,Wso2esb,我有开发和生产部分的配置。本节包含后端的URL。在我的顺序,我需要它调用到这些后端几次每个请求 <config> <env>prod</env> <backend env="prod">http://localhost:1234/</backend> <backend env="dev">http://localhost:2345/</backend> </config> 戳 http://

我有开发和生产部分的配置。本节包含后端的URL。在我的顺序,我需要它调用到这些后端几次每个请求

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

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


谢谢。

您可以在注册表中读取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>

然后您可以通过如下方式记录来查看值:

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

我找到了答案。根据调出调解人的来源:


如果未指定URL,则使用“To”标题

我已经了解了如何读取此类配置(我使用本地条目)。我的问题是如何使用这些值作为Callout mediator的URL。在我看来,Callout像读取普通字符串一样读取URL参数,并且不进行任何XPath转换(因此不可能将其设置为“get property”表达式)