Свойство, которое работает в настройках CloudHub, не работает в файлах свойств - PullRequest
0 голосов
/ 28 марта 2019

Мое приложение использует открытый ключ шифрования в каталоге src / main / resources в подкаталоге с именем keys.Чтобы получить к нему доступ локально, мне нужно только установить путь к src/main/resources/keys/<mykey>.gpg

Поскольку структура в Cloudhub отличается, установка указанного выше пути не будет работать, и вместо этого я должен установить его на ${app.home}/keys/<mykey>.gpg.Это работает, когда я устанавливаю свойство непосредственно в Cloudhub, но когда я устанавливаю его в своем файле свойств, я получаю сообщение об ошибке ...

Could not resolve placeholder 'app.home' in string value 
"${app.home}/classes/keys/<mykey>.gpg"

Я также не могу разрешить свойство при локальном запуске,Я предполагаю, что свойства в приложении - $ {ENV} .properties сначала разрешаются, затем устанавливается свойство $ {app.home}, а свойства Cloudhub разрешаются последними.

Мой вопрос заключается в том, чтоя могу сделать, чтобы убедиться, что $ {app.home} правильно разрешен из файла свойств, или есть другой способ добиться того же, не используя его?В идеале нам не нужно указывать расположение открытого ключа при каждом повторном развертывании приложения в Cloudhub.

Спасибо!

РЕДАКТИРОВАТЬ: для большей ясности, вот где я устанавливаю свойствов свойствах application-DEV: cibc.public.key.location=${app.home}/classes/keys/<mykey>.gpg

1 Ответ

3 голосов
/ 29 марта 2019

Я думаю, что это проблема в Mule 3 в определенных сценариях. Можете ли вы попробовать установить ignore-unresolvable="true" для свойства-заполнителя. Он должен сказать весне перейти к следующему месту для поиска.

<context:property-placeholder location="your.properties" ignore-unresolvable="true"/>

UPDATE Также попробуйте разделить свойства на две записи:

cibc.public.key.location=classes/keys/<mykey>.gpg

Тогда в вашей конфигурации Mule:

identityFile="${app.home}/${cibc.public.key.location}" 
...