如何設定Wildfly讀取環境變數

如何設定Wildfly讀取環境變數

將應用程式從 Java 應用程式伺服器 GlassFish 移植到 Wildfly 時,我注意到 Wildfly 中的應用程式將環境變數報告為空,而 GlassFish 報告一個值。申請代碼相同;檢索環境變數的命令是:

System.getenv("MY_ENV_VAR");

我在 Linux 上並在啟動 GlassFish 和 Wildfly 的用戶的 .bashrc 檔案中設定環境變數。我嘗試將變數新增到 Wildfly 的 bin/standalone.conf、bin/standalone.sh 和 bin/.jbossclirc 檔案中,但沒有成功。

JBoss 論壇上有一個類似的未解答問題:

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

注意:環境變數和系統屬性不是一回事。解決方法是重寫我的所有應用程式以使用系統屬性而不是環境變量,但我想盡可能避免這種情況。

答案1

我透過在 systemd 設定檔中設定環境變數來使其工作,如下所述:

如何在systemd服務中設定環境變數?

GlassFish 和 Wildfly 之間的差異似乎確實在於服務腳本,因為 GlassFish 使用較舊的 /etc/init.d,而 Wildfly 使用較新的 /etc/systemd。

相關內容