2015-04-15 2 views
1

Я прочитал документацию относительно возврата к переменным среды по адресу https://github.com/typesafehub/config/blob/master/HOCON.md#substitution-fallback-to-environment-variables. Я понимал, что он будет собирать любые envars. Так, например, если из оболочки я смог выполнить echo $ HOSTNAME и увидеть непустой ответ, тогда HOCON также должен это сделать.HOCON не заменяет переменные окружения

В моей application.conf У меня есть строка

akka.remote.netty.tcp.hostname = ${HOSTNAME} 

Однако, мое приложение не доволен этим и не начать.

/conf/application.conf: 9: Could not resolve substitution to a value: ${HOSTNAME} 

Это вопрос пользователя? Проблема с оболочкой? Я могу войти в систему в качестве пользователя и эхо $ HOSTNAME

разметили этот Скала и Акко, так что UserBase, вероятно, имеет наибольшее воздействие HOCON

ответ

1

Причина, по которой HOCON не поднимает envar, заключается в том, что мое приложение работает как служба linux (Centos 6.5), которая очищает большинство переменных окружения.

https://unix.stackexchange.com/questions/44370/how-to-make-unix-service-see-environment-variables См для соответствующего описания вопроса

1

это выстрел в темноте, но вы используете старую версию of typesafe-config? возможно, это более новая функция? функция, как представляется, рекламируется, как вы описываете, но если вы тянете в typafe-config как переходную зависимость (скажем, от akka), возможно, вы получаете более старую версию.

Что произойдет, если вы удалите замену в вашем .conf-файле (чтобы синтаксический анализ был успешным), а затем распечатайте содержимое ConfigFactory.systemEnvironment()? для справки: http://typesafehub.github.io/config/latest/api/com/typesafe/config/ConfigFactory.html#systemEnvironment--

Смежные вопросы