【问题标题】:use Placeholder in Tomcats Server.xml在 Tomcats Server.xml 中使用占位符
【发布时间】:2012-03-27 17:56:30
【问题描述】:


我有一个小问题,看不到解决方案。 我的 tomcat 需要灵活的端口。我想在属性文件中设置一个端口变量,然后 tomcat 读取它并在这个端口上启动服务器。我知道 tomcat 不能从属性中读取,但他可以读取系统变量/属性。 我用ant构建我的项目和tomcat,这意味着解决方案在于ant。

server.xml

<Connector
    port="${tomcat.http.port}" maxHttpHeaderSize="8192" ...
</Connector>

build.xml

<exec dir="${basedir}/tomcat/bin" executable="${basedir}/tomcat/bin/catalina.sh" failonerror="true" output="${basedir}/tomcat/logs/testrun.log">
    <arg value="start" />
</exec>

project.properties

tomcat.http.port=42

【问题讨论】:

    标签: tomcat ant


    【解决方案1】:

    我在做什么,我有一个 server.xml tomcat 文件,其中包含占位符属性:

    <Connector port="@http.port@" protocol="HTTP/1.1"
            connectionTimeout="20000" redirectPort="@https.port@" />
    

    然后在我的 ant build.xml 中:

    <copy todir="${dir.destination.config.tomcat}" filtering="true">
            <fileset dir="${dir.with.template.config.tomcat}"/>
    
            <filterset>
                <filter token="http.port" value="${http.port}"/>
                <filter token="https.port" value="${https.port}"/>
                <filter token="admin.port" value="${admin.port}"/>
                <filter token="control.port" value="${control.port}"/>
            </filterset>
        </copy>
    

    然后使用 -Dhttp.port=42 运行您的 ant 构建,或者将其放入 ant 加载的属性文件中。

    【讨论】:

    • 具体是什么?这是我的 server.xml 吗?
    • 很酷,我认为它有效。谢谢您的帮助。 template.config 可以是 server.xml。
    猜你喜欢
    • 2013-10-16
    • 2015-09-05
    • 2017-05-28
    • 2012-07-08
    • 2013-06-08
    • 1970-01-01
    • 2019-02-25
    • 1970-01-01
    • 2021-01-11
    相关资源
    最近更新 更多