Как загрузить файл свойств в Mule ESB 3.9.0 в соответствии с окружением?

Я работаю над Mule ESB версии 3.9.0 Community Edition. Мне нужно развернуть приложение esb в разных средах, таких как dev, int, prod и т. Д. Поэтому я сделал следующее:

mule-app.properties:
env = dev

И создали три файла свойств:

esb-frontoffice-dev.config.properties
esb-frontoffice-int.config.properties
esb-frontoffice-prod.config.properties

Теперь в файле конфигурации ESB я определил заполнитель свойства следующим образом:

  <context:property-placeholder location="esb-frontoffice-${env}.config.properties"/>

Затем, после создания артефакта, я развертываю его на сервере времени выполнения Mule ESB 3.9.0. Но я получаю следующую ошибку:

Caused by: java.io.FileNotFoundException: class path resource [esb-frontoffice-${env}.config.properties] cannot be opened because it does not exist
        at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:172) ~[spring-core-4.1.6.RELEASE.jar:4.1.6.RELEASE]
        at org.springframework.core.io.support.EncodedResource.getInputStream(EncodedResource.java:150) ~[spring-core-4.1.6.RELEASE.jar:4.1.6.RELEASE]
        at org.springframework.core.io.support.PropertiesLoaderUtils.fillProperties(PropertiesLoaderUtils.java:98) ~[spring-core-4.1.6.RELEASE.jar:4.1.6.RELEASE]
        at org.springframework.core.io.support.PropertiesLoaderSupport.loadProperties(PropertiesLoaderSupport.java:175) ~[spring-core-4.1.6.RELEASE.jar:4.1.6.RELEASE]
        at org.springframework.core.io.support.PropertiesLoaderSupport.mergeProperties(PropertiesLoaderSupport.java:156) ~[spring-core-4.1.6.RELEASE.jar:4.1.6.RELEASE]
        at org.springframework.beans.factory.config.PropertyResourceConfigurer.postProcessBeanFactory(PropertyResourceConfigurer.java:80) ~[spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
        ... 36 more

person Bibek Kr. Bazaz    schedule 23.08.2019    source источник


Ответы (1)


Вам необходимо определить env как свойство Java в MULE_HOME / conf / wrapper.conf.

Пример:

wrapper.java.additional.23=-Denv=prod

Вместо 23 используйте любое число, которое ранее не использовалось в файле для других свойств.

person aled    schedule 23.08.2019
comment
Спасибо @aled Это решение отлично сработало. Однако я хотел бы понять это: mule-app.properties не работал, когда я развертывал приложение на сервере, но он работал, когда я делал dev и запускал поток в Anypoint Studio. почему это происходит? - person Bibek Kr. Bazaz; 23.08.2019
comment
mule-app.properties поставляется вместе с приложением и не может быть изменен для каждой среды. Достаточно хорош для тестирования в Studio. Настройка свойства Java выполняется для каждого сервера Mule. - person aled; 24.08.2019