Назад | Перейти на главную страницу

Как настроить Wildfly для чтения переменных среды

При переносе приложения с сервера приложений Java GlassFish на Wildfly я заметил, что приложения в Wildfly сообщают о переменных среды как пустые, тогда как GlassFish сообщает о значении. Код приложения такой же; команда для получения переменной окружения:

System.getenv("MY_ENV_VAR");

Я работаю в Linux и устанавливаю переменную среды в файле .bashrc пользователя, запускающего GlassFish и Wildfly. Я безуспешно пытался добавить переменную в файлы bin / standalone.conf, bin / standalone.sh и bin / .jbossclirc Wildfly.

Вот аналогичный вопрос без ответа на форуме JBoss:

https://developer.jboss.org/thread/229862

Примечание: переменная среды и системное свойство - это не одно и то же. Обойти эту проблему можно было бы в том, чтобы переписать все мои приложения для использования системных свойств вместо переменных среды, но я бы хотел избежать этого, если это возможно.

Я заставил его работать, установив переменные среды в файле конфигурации systemd, как описано здесь:

Как установить переменную среды в службе systemd?

Похоже, разница между GlassFish и Wildfly действительно заключалась в сценариях обслуживания, поскольку GlassFish использовал более старый /etc/init.d, а Wildfly - более новый / etc / systemd.