환경 변수를 읽도록 Wildfly를 구성하는 방법

환경 변수를 읽도록 Wildfly를 구성하는 방법

Java 애플리케이션 서버 GlassFish에서 Wildfly로 애플리케이션을 이식할 때 Wildfly의 애플리케이션은 환경 변수를 비어 있는 것으로 보고하는 반면 GlassFish는 값을 보고하는 것을 발견했습니다. 애플리케이션 코드는 동일합니다. 환경 변수를 검색하는 명령은 다음과 같습니다.

System.getenv("MY_ENV_VAR");

저는 Linux를 사용하고 있으며 GlassFish 및 Wildfly를 실행하는 사용자의 .bashrc 파일에 환경 변수를 설정하고 있습니다. 나는 bin/standalone.conf, bin/standalone.sh 및 Wildfly의 bin/.jbossclirc 파일에 변수를 추가하려고 시도했지만 성공하지 못했습니다.

다음은 JBoss 포럼에서 비슷한 답변이 없는 질문입니다.

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

참고: 환경 변수와 시스템 속성은 동일하지 않습니다. 해결 방법은 환경 변수 대신 시스템 속성을 사용하도록 모든 응용 프로그램을 다시 작성하는 것이지만 가능하면 이를 피하고 싶습니다.

답변1

여기에 설명된 대로 systemd 구성 파일에서 환경 변수를 설정하여 작동하게 했습니다.

시스템 서비스에서 환경 변수를 설정하는 방법은 무엇입니까?

GlassFish는 이전 /etc/init.d를 사용하고 Wildfly는 최신 /etc/systemd를 사용했기 때문에 GlassFish와 Wildfly의 차이점은 실제로 서비스 스크립트에 있었던 것 같습니다.

관련 정보