使用Tomcats Server.xml中的占位符




我有一个小问题,看不到解决办法。我的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>

项目属性

tomcat.http.port=42

我所做的是,我有一个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>

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

相关内容

  • 没有找到相关文章

最新更新