我想在catalina.properties中拥有一个属性,并在某些情况下希望使用-D = propvalue从命令行覆盖它
这可能吗?
更具体地说,我想使用系统属性来控制server.xml中连接器的端口,如下所示:
<Connector port="${custom.port}" sendReasonPhrase="true" maxThreads="200"/>
在catalina.properties中,我设置了属性: custom.port = 9000
我想保留它,但是在某些情况下,将替代项传递给tomcat,例如-Dcustom.port = 9001。
好像catalina.properties中的配置具有优先级,将被使用。这是意外行为。
是否有其他方法可以强制执行? 还有另一种在server.xml中具有默认值的方法吗?
<Connector port="${custom.port:9000}" sendReasonPhrase="true" maxThreads="200"/>
如果系统属性不存在,它将被设置为9000。
答案 0 :(得分:1)
在JVM启动时定义了Tomcat doesn't allow you to override properties,以覆盖catalina.properties
中列出的内容。
这将是一个容易添加的功能,但是可能需要考虑一些安全性和/或职责分离。我的建议是提交Bugzilla enhancement request。如果您在GitHub上提供了补丁或请求请求,我们将把您放在changelog中。 :)