Tomcat - 从命令行覆盖 catalina.properties
Tomcat - Overriding catalina.properties from commandline
我想在 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。
Tomcat doesn't allow you to override properties 在 JVM 启动时定义以覆盖 catalina.properties
.
中列出的那些
添加此功能很容易,但可能需要考虑一些安全性 and/or 职责分离问题。我的建议是提交 Bugzilla enhancement request. If you provide a patch or pull request on GitHub, we'll put you in the changelog。 :)
我想在 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。
Tomcat doesn't allow you to override properties 在 JVM 启动时定义以覆盖 catalina.properties
.
添加此功能很容易,但可能需要考虑一些安全性 and/or 职责分离问题。我的建议是提交 Bugzilla enhancement request. If you provide a patch or pull request on GitHub, we'll put you in the changelog。 :)