升级Tomcat9后catalina.config失效,如何从catalina.home加载配置文件?
我从Tomcat 8.5升级到Tomcat 9后,原8.5版本中使用的catalina.config属性值不再生效。
在Tomcat 8.5中,可通过catalina.config属性指定catalina.properties文件的路径,该版本中catalina.config仅接受URL作为路径:
catalina.config --> catalina.properties配置文件的URL。
但在Tomcat 9中,catalina.config的可接受值有所调整,源于Bug 48543的补丁增强了该参数指定方式的灵活性,属性描述也更新为:
catalina.config --> 加载catalina.properties配置文件的位置。可以是绝对URL、相对(相对于当前工作目录)URL,或是替代文件名,此时Tomcat会尝试从默认位置$CATALINA_BASE/conf/加载文件。
我在Tomcat 8.5中可正常工作的配置(catalina.base会根据启动的应用不同而变化):
-Dcatalina.home=c:\Program Files\myProgram -Dcatalina.base=c:\Program Files\myProgram\mySubProgram -Dcatalina.config=file://c:/Program Files/myProgram/conf/loader.properties
升级到Tomcat 9后,通过catalina.config指定的路径无法再加载loader.properties文件。我尝试了多种路径、URL和文件名的组合,都无法让Tomcat从$catalina_home\conf以外的位置加载文件。
尝试过但未成功的方法(catalina.base和catalina.home使用上述值):
- 失败:绝对URL
-Dcatalina.config=file://c:/Program Files/myProgram/conf/loader.properties OR -Dcatalina.config=file://c:/Program Files/myProgram/conf/catalina.properties - 失败:相对(相对于当前工作目录)URL
-Dcatalina.config=file://../conf/loader.properties OR -Dcatalina.config=file://../conf/catalina.properties - 符合文档描述但无法满足需求(仅能从$catalina.home\conf加载)
-Dcatalina.config=loader.properties
目前毫无头绪,不确定是需要向Tomcat提交Bug报告,还是我的配置方式有误,恳请各位提供帮助。
内容的提问来源于stack exchange,提问作者cforrester

