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

Как настроить 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

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

решение1

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

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

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

Связанный контент