我需要为在Apache Tomcat 10.1中运行的Java Web应用程序提供配置文件路径。
必须在部署之外设置配置路径。它是部署应用程序的计算机/阶段的属性。而不是应用程序的特性。因此,它**不能在web.xml
**中设置。
例如/srv/myapp/prod/config.ini
或C:\EclipseDeveloperOnWindows\config.ini
。
我考虑了很多选择:
- 操作系统环境变量
MYAPPCONFIG
,如PATH
或JAVA_HOME
:独立于我的应用程序,甚至独立于Tomcat容器。如果我想以同一个系统用户的身份运行具有不同配置的多个发行版/Tomcat,可能会容易出错。 CATALINA_OPTS
中作为Tomcat命令行选项的Java系统属性,例如-DmyApp.config=/some/path.ini
<CATALINA_BASE>\conf\server.xml
中的Tomcat上下文参数。这样,每个Tomcat示例(一个CATALINA_HOME
,多个CATALINA_BASE
)都可以为config path属性定义一个 * 不同的 * 值。(我必须在web.xml
中包含对server.xml
上下文参数的引用吗?我可以从ServletContext
中查找它吗?)<CATALINA_BASE>\conf\server.xml
中的Tomcat环境条目-Tomcat上下文参数与Tomcat环境条目的区别/优缺点是什么?(我可以从ServletContext
中查找吗?)- 其他的东西,也许可以用JNDI查找?
我错过了一些选择吗?推荐哪一种?你使用哪种方法是出于什么原因?
1条答案
按热度按时间zxlwwiss1#
将配置放入Context中可能是最好的选择。请注意,Contexts可以用各种方式定义,而不仅仅是在
server.xml
中。有关详细信息,请参见Tomcat 10.1文档中的定义上下文。
对于我们的产品,相同的war文件被部署到登台环境和生产环境。两个上下文描述符(每个环境一个)详尽地描述了环境之间的差异。