Доступ к mule-app.properties в файле пользовательских свойств, расположенном в src/main/resources на cloudhub

У меня есть приложение мул, созданный с использованием мул апикит. Файл mule-app.properties содержит свойство ниже:

orig.db.url=jdbc:db2://mmrs001.nmd.net:1004/dudu:user=abc43;password=xxxx;

Файл пользовательских свойств src/main/resources/dev.properties содержит свойство ниже:

db.url=${orig.db.url}

И, XML-файл конфигурации mule содержит свойство-заполнитель:

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

Теперь, когда я развертываю его локально, все работает нормально, и я могу запустить поток. Но в то же время, когда я развертываюсь на Cloudhub, это дает мне следующее исключение:

Invalid bean definition with name 'get:/total_amount:total_amount-db-config' defined in null: Could not resolve placeholder 'orig.db.url' in string value "jdbc:db2://mmrs001.nmd.net:1004/dudu:user=abc43;password=xxxx;"

Я не могу понять, что мне здесь не хватает?

3 ответа

Решение

Mule-app.properties будет добавлен в системные свойства вместо свойств classpath. Мы не можем ссылаться на системные свойства из файлов свойств, добавленных в classpath. Нам нужно переместить эти свойства в classpath, чтобы разрешить их во время выполнения.

Один из способов переопределить это поведение, импортировав mule-app.properties, используя:

<context:property-placeholder location="mule-app.properties,dev.properties”/>

Это говорит весне, чтобы загрузить свойства в соответствующем порядке. Итак, сначала загружается mule-app.properties, а затем dev.properties.

Но не рекомендуется включать файл mule-app.properties в путь к классам. Лучший способ - удалить свойства dev из mule-app.properties и поместить его в dev.properties.

Как вы развернули на CloudHub? Если вы использовали инструмент развертывания из Anypoint Studio, у вас есть возможность установить свойства перед развертыванием. Изображение из Anypoint Studio

По умолчанию при развертывании в cloudhub все свойства из mule-app.properties должны отображаться на вкладке свойств. Разве вы не видели их при первом развертывании?

Другие вопросы по тегам