Один файл конфигурации свойств для нескольких приложений в среде выполнения Mule ESB

Сегодня у меня есть те же свойства, которые настроены в файле mule-app.properties для каждого приложения. Нравится:

введите здесь описание изображения

Все приложения (+ это 5) работают в одной среде выполнения Mule ESB (CE).

Например, когда необходимо изменить хост или пароль, мне нужно изменить файл свойств всех приложений.

Я хотел бы иметь только один файл свойств в среде выполнения Mule ESB, общий для всех приложений.

Есть ли форма для этого?

Спасибо!


person Muka    schedule 05.02.2016    source источник


Ответы (2)


Вы можете создать новый проект Mule и назвать его «общим». Теперь в этом проекте вы можете создать файл src/main/resources/config.properties и поместить туда все необходимые настройки.

Чтобы иметь эти настройки в вашем текущем проекте, просто добавьте проект «общий» на вкладке «Проекты» в «Пути сборки Java». Затем в главном файле вашего текущего проекта напишите

< context: property-placeholder location="config.properties" />

person Alexis Ochoa    schedule 06.02.2016
comment
В дизайн-тайм работает нормально! p.e., когда Test Connection в Studio. Но при запуске в Anypoint Studio возникает следующая ошибка: WARN 2016-02-08 17:00:28,088 [main] org.mule.config.spring.MuleArtifactContext: Exception encountered during context initialization - cancelling refresh attempt org.springframework.beans.factory.BeanInitializationException: Could not load properties; nested exception is java.io.FileNotFoundException: class path resource [mule-apps.properties] cannot be opened because it does not exist - person Muka; 08.02.2016
comment
Извините, я забыл путь к классам. Попробуй <context: property-placeholder location="classpath:config.properties" />. Если получится то же самое, то попробуй с java-проектом (я так и сделал). Не забудьте поместить файл свойств в пакет (например, com.company.config) и использовать его для ссылки на <context: property-placeholder location="classpath:com/company/config/config.properties" /> - person Alexis Ochoa; 09.02.2016
comment
Я использовал Java Project в соответствии с вашим предложением. Но как теперь развернуть ESB на производстве, которым был предоставлен общий доступ к этому проекту? По какому пути .properties размещаются на сервере? - person Muka; 11.02.2016
comment
Когда вы импортируете свой проект, общий проект прикрепляется как .jar. Вам нужно только изменить настройки, чтобы они указывали на ваши производственные серверы и готовы - person Alexis Ochoa; 12.02.2016

Используйте Spring Property Placeholder и прочтите один файл из файловой системы:

<context:property-placeholder location="file:/path/to/myConfigFile.properties" />

https://docs.mulesoft.com/mule-user-guide/v/3.6/configuring-properties#properties-files

person Ryan Carter    schedule 05.02.2016
comment
Я видел это руководство, но не оставил ясным для себя локализацию файла (путь) на сервере и шаблон имени файла. - person Muka; 05.02.2016
comment
Обновлен отсутствующий образец кода. также зависит от вашей операционной системы. Итак, на основе unix: файл: /opt/mule/myConfigFile.properties - person Ryan Carter; 05.02.2016
comment
Понял! Есть ли способ использовать одно и то же относительное расположение, чтобы он работал как с ESB Server, так и с Anypoint Studio? - person Muka; 05.02.2016