簡體   English   中英

在 Tomcat 中為應用程序定義環境變量,在部署之外

[英]Define environment variable for app in Tomcat, outside of deployment

我需要為我的 Java web 應用程序提供一個配置文件路徑,該應用程序在 Apache Tomcat 10.1 中運行。

配置路徑必須在部署之外設置。 它是部署應用程序的機器/階段的屬性。 而不是應用程序的屬性。 所以一定不能設置在web.xml

例如/srv/myapp/prod/config.iniC:\EclipseDeveloperOnWindows\config.ini

我考慮過多種選擇:

  • 操作系統環境變量MYAPPCONFIG ,如PATHJAVA_HOME :獨立於我的應用程序,甚至獨立於 Tomcat 容器。 缺點:如果我想以同一系統用戶的身份運行具有不同配置的多個發行版/Tomcat,可能會變得容易出錯。
  • Java 系統屬性作為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中查找它嗎?)
  • 其他東西,也許可以使用 JNDI 查找?

我錯過了一些選擇嗎? 推薦哪一個? 您出於什么原因使用哪種方法?

將配置放入上下文可能是您的最佳選擇。 請注意,上下文可以通過多種方式定義,而不僅僅是在server.xml中。

有關詳細信息,請參閱 Tomcat 10.1 文檔中的定義上下文

對於我們的產品,同一個war文件被部署到登台環境和生產環境。 兩個上下文描述符(每個環境一個)詳盡地描述了環境之間的差異。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM