Como configurar o Wildfly para ler variáveis ​​de ambiente

Como configurar o Wildfly para ler variáveis ​​de ambiente

Ao portar um aplicativo do servidor de aplicativos Java GlassFish para o Wildfly, percebi que os aplicativos no Wildfly relatam variáveis ​​de ambiente como vazias, enquanto o GlassFish relata um valor. O código do aplicativo é o mesmo; o comando para recuperar a variável de ambiente é:

System.getenv("MY_ENV_VAR");

Estou no Linux e definindo a variável de ambiente no arquivo .bashrc do usuário que inicia o GlassFish e o Wildfly. Tentei adicionar a variável aos arquivos bin/standalone.conf, bin/standalone.sh e bin/.jbossclirc do Wildfly sem sucesso.

Aqui está uma pergunta semelhante sem resposta no JBoss Forum:

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

Nota: uma variável de ambiente e uma propriedade do sistema não são a mesma coisa. Uma solução alternativa seria reescrever todos os meus aplicativos para usar propriedades do sistema em vez de variáveis ​​de ambiente, mas gostaria de evitar isso, se possível.

Responder1

Eu fiz funcionar definindo as variáveis ​​de ambiente no arquivo de configuração do systemd conforme descrito aqui:

Como definir a variável de ambiente no serviço systemd?

Parece que a diferença entre GlassFish e Wildfly estava realmente nos scripts de serviço, já que o GlassFish estava usando o /etc/init.d mais antigo enquanto o Wildfly estava usando o /etc/systemd mais recente.

informação relacionada