2012-03-27 9 views
1


Ich habe ein kleines Problem und sehe keine Lösung dafür. Ich brauche flexible Ports für meinen Kater. Ich möchte eine Portvariable in einer Eigenschaftendatei setzen und tomcat dies lesen und den Server an diesem Port starten. Ich weiß, dass Tomcat nicht von Eigenschaften lesen kann, aber er kann Systemvariablen/Eigenschaften lesen. Ich baue mein Projekt und Kater mit Ameisen, das heißt die Lösung liegt in Ameisen.verwenden Platzhalter in 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 

Antwort

1

Was ich tue, Ich habe einen server.xml tomcat mit Platzhalter-Properties-Datei:

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

Dann in meinem 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> 

und führen Sie Ihre Ant Build mit -Dhttp.port = 42 oder setzen, dass in einer Eigenschaftendatei, die von ant geladen wurde.

+0

Was kann konkret sein? Ist das meine server.xml? – Happo

+0

Cool ich denke, es funktioniert. Danke für Ihre Hilfe. Die Vorlage.config kann die Datei server.xml sein. – Happo

Verwandte Themen