我有一个小问题,看不到解决办法。我的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加载的属性文件中。