入站端点的 WSO2 ESB 动态配置

WSO2 ESB Dynamic Configuration for Inbound Endpoint

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

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

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

我只想先读取本例中测试的 JNPU 的环境值。然后,我想用这个值更改入站端点中的 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 的值。

感谢任何想法。

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

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

如果您可以在注册表中保留 url,那么您可以从注册表中使用它,如下所示。

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