在Tomcats Server.xml中使用占位符

时间:2012-03-27 09:48:01

标签: tomcat ant


我有一点问题,看不到它的解决方案。 我的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

1 个答案:

答案 0 :(得分: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加载的属性文件中。