Динамическая конфигурация WSO2 ESB для входящей конечной точки - PullRequest
4 голосов
/ 03 июля 2019

Я настроил входящую конечную точку, но я хочу управлять значением java.naming.provider.url в файле conf.xml, который находится в каталоге config в WSO2.

В каждой среде у меня есть файл 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"/>

Я использовал ихв качестве параметров входящей конечной точки, но мне не удалось получить значение java.naming.provider.url в файле conf.xml.

Спасибо за любую идею.

Ответы [ 2 ]

2 голосов
/ 04 июля 2019

Мы можем динамически настраивать параметры входящей конечной точки, если мы сохраняем только соответствующее значение параметра в качестве содержимого файла, сохраненного в реестре.Например, в вашем случае значение «failover: tcp: // localhost: 61616» должно быть сохранено в файле.Вы можете хранить отдельные файлы для каждого параметра в разделе реестра.И вам нужно только изменять содержимое файла для каждой среды.

Пожалуйста, обратитесь к разделу Указание параметров входящей конечной точки в качестве значений реестра в https://docs.wso2.com/display/EI650/WSO2+EI+Inbound+Endpoints.

1 голос
/ 04 июля 2019

Если вы можете сохранить URL-адрес в реестре, то вы можете использовать его из реестра следующим образом.

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