我配置了入站端点,但是我想在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
的值。
感谢任何想法。
答案 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"/>