WSO2 ESB入站端点的动态配置

时间:2019-07-03 10:39:09

标签: wso2 wso2esb

我配置了入站端点,但是我想在WSO2的config目录下的conf.xml文件中管理java.naming.provider.url值。

在每个环境中,我都有一个conf.xml文件,其中包含该环境的URL值,例如:

<environment>
    <JNPU>test</JNPU>
</environment>
<test>
    <JNPU>failover:tcp://localhost:61616</JNPU>
</test>

我只想首先读取JNPU的此环境值,该环境值在本示例中为test。然后,我想使用此值更改入站端点中的java.naming.provider.url值。

在序列中,我可以使用以下属性读取值:

<property name="confFile" expression="get-property('registry','conf:endpoints/conf.xml')" scope="default" type="OM" xmlns:ns="http://org.apache.synapse/xsd"/>
<property name="JNPUEnvValue" expression="evaluate(fn:concat('$confFile//environment//','JNPU'))" scope="default" type="STRING" xmlns:ns="http://org.apache.synapse/xsd"/>
<property name="JNPUValue" expression="evaluate(fn:concat('$ctx:epConfiguration','//',get-property('JNPUEnvValue'),'//','JNPU'))" scope="default" type="STRING" xmlns:ns="http://org.apache.synapse/xsd"/>

我将它们用作入站端点中的参数,但无法在conf.xml文件中获取java.naming.provider.url的值。

感谢任何想法。

2 个答案:

答案 0 :(得分:2)

如果仅将各自的参数值保存为注册表中保存的文件内容,则可以动态配置入站端点参数。例如,在您的情况下,值“ failover:tcp:// localhost:61616”应保存在文件中。您可以在注册表位置为每个参数保留单独的文件。而且,您只需要更改每种环境的文件内容即可。

请参阅https://docs.wso2.com/display/EI650/WSO2+EI+Inbound+Endpoints中的将入站端点参数指定为注册表值部分。

答案 1 :(得分:1)

如果您可以将网址保留在注册表中,则可以按如下方式在注册表中使用它。

<parameter name="java.naming.provider.url" key="gov:/Path/javaNamingProviderURL"/>