2012-03-27 82 views
1


我有一个小问题,看不到它的解决方案。 我需要灵活的端口为我的tomcat。我想在一个属性文件中设置一个端口变量,然后tomcat读取这个端口并在这个端口上启动服务器。我知道tomcat无法读取属性,但他可以读取系统变量/属性。 我用蚂蚁建立我的项目和tomcat,这意味着解决方案在于蚂蚁。在Tomcats Server.xml中使用占位符

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

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

<Connector port="@[email protected]" protocol="HTTP/1.1" 
     connectionTimeout="20000" redirectPort="@[email protected]" /> 

然后在我的蚂蚁的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运行Ant构建= 42或端起在由ant加载的属性文件中。

+0

什么可以是具体?这是我的server.xml吗? – Happo 2012-03-27 10:07:27

+0

酷我觉得它的作品。感谢您的帮助。 template.config可以是server.xml。 – Happo 2012-03-27 10:11:17