繁体   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