代码之家  ›  专栏  ›  技术社区  ›  galusben

Tomcat-从命令行重写catalina.properties

  •  1
  • galusben  · 技术社区  · 5 年前

    我希望在catalina.properties中有一个属性,在某些情况下,用-d=propValue从命令行重写它

    这有可能吗?

    更具体地说,我想用系统属性控制server.xml中连接器的端口,如下所示:

        <Connector port="${custom.port}" sendReasonPhrase="true" maxThreads="200"/>
    

    在catalina.properties中,我设置了以下属性: 自定义.port=9000

    我想保留它,但在某些情况下,将一个覆盖传递给Tomcat,比如-dcustom.port=9001。

    似乎catalina.properties中的配置具有优先权并将被使用。这是意想不到的行为。

    有没有另一种方法来强制它? 在server.xml中有没有其他方法可以使用默认值,比如:

        <Connector port="${custom.port:9000}" sendReasonPhrase="true" maxThreads="200"/>
    

    如果系统属性不存在,则设置为9000。

    1 回复  |  直到 5 年前
        1
  •  1
  •   Christopher Schultz    5 年前

    雄猫 doesn't allow you to override properties 在JVM启动时定义以重写 catalina.properties .

    这将是一个很容易添加的特性,但可能需要考虑一些安全性和/或职责分离。我的建议是 Bugzilla enhancement request . 如果您在Github上提供补丁或拉请求,我们会将您放入 changelog . :)