[英]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.