[英]Define environment variable for app in Tomcat, outside of deployment
我需要為我的 Java web 應用程序提供一個配置文件路徑,該應用程序在 Apache Tomcat 10.1 中運行。
配置路徑必須在部署之外設置。 它是部署應用程序的機器/階段的屬性。 而不是應用程序的屬性。 所以一定不能設置在web.xml
中。
例如/srv/myapp/prod/config.ini
或C:\EclipseDeveloperOnWindows\config.ini
。
我考慮過多種選擇:
MYAPPCONFIG
,如PATH
或JAVA_HOME
:獨立於我的應用程序,甚至獨立於 Tomcat 容器。 缺點:如果我想以同一系統用戶的身份運行具有不同配置的多個發行版/Tomcat,可能會變得容易出錯。CATALINA_OPTS
中 Tomcat 的命令行選項,例如-DmyApp.config=/some/path.ini
<CATALINA_BASE>\conf\server.xml
中的Tomcat上下文參數。 這樣,每個 Tomcat 實例(一個CATALINA_HOME
,多個CATALINA_BASE
)都可以為配置路徑屬性定義不同的值。 (我是否必須在 web.xml 中包含對server.xml
上下文參數的web.xml
?我可以從ServletContext
中查找它嗎?)<CATALINA_BASE>\conf\server.xml
中的 Tomcat 環境條目 - Tomcat 上下文參數與 Tomcat 環境條目的區別/優缺點是什么? (我可以從ServletContext
中查找它嗎?)我錯過了一些選擇嗎? 推薦哪一個? 您出於什么原因使用哪種方法?
將配置放入上下文可能是您的最佳選擇。 請注意,上下文可以通過多種方式定義,而不僅僅是在server.xml
中。
有關詳細信息,請參閱 Tomcat 10.1 文檔中的定義上下文。
對於我們的產品,同一個war文件被部署到登台環境和生產環境。 兩個上下文描述符(每個環境一個)詳盡地描述了環境之間的差異。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.