TomC@ - HowTo's
| 
PDF |
|
Tomcat Management mit Ant
| |
| | |
Peter Roßbach
Die Manager Anwendung kann nicht nur interaktive genutzt werden, sondern ist
auch dazu geeignet direkt via Ant Skripten genutzt zu werden. Zwar gibt es ein
hilfreiche Manager
Dokumentation, aber eine Anleitung des direkten Einsatzes gibt es bisher nur
im Tomcat 4X Buch. für den Tomcat 4. Im Mai
2004 wird die hier beschrieben Technik hoffentlich dann auf im Tomcat 5 Release
vorhanden sein.
Bisher gibt es im Tomcat keine geschlossene Definition der Ant Task und ein
Masterskript für das Deployment wird so schnell etwas lang. Die folgende
Beschreibung hilft Ihnen hoffentlich schneller automatischen Aktionen mit Ihrem
Tomcat durchzuführen.
catalina-ant-properties
Alle benötigten Ant-Task für das aktuelle Deployment werden in einer Mapping
Datei catalina-ant.properties zusammengefaßt. Diese Datei wird dann in das
Verzeichnis $CATALINA.HOME/conf kopiert.
list=org.apache.catalina.ant.ListTask
deploy=org.apache.catalina.ant.DeployTask
undeploy=org.apache.catalina.ant.UndeployTask
start=org.apache.catalina.ant.StartTask
stop=org.apache.catalina.ant.StopTask
reload=org.apache.catalina.ant.ReloadTask
Note
Im Tomcat Release gibt es noch mehr Ant Task diese werden aber nicht für
das Deployment das hier gezeigt wird benötigt.
Definition der Properities
# Properties for Tomcat Server
catalina.home=_PATH_TO_TOMCAT_RELEASE_
catalina.manager.server=localhost
catalina.manager.url=http://${catalina.manager.server}:7380/manager
catalina.manager.username=manager
catalina.manager.password=tomcat
Das Skript tomadmin.xml statt dem jetzigen Fragments
<?xml version="1.0" encoding="ISO-8859-1"?>
<project name="TomC@ Tomcat Manager"
default="list"
basedir=".">
<property name="deploytarget" value=""/>
<property file="manager${deploytarget}.properties"/>
<path id="catalina_ant.path">
<fileset dir="${catalina.home}/server/lib">
<include name="catalina-ant.jar"/>
</fileset>
</path>
<taskdef file="${catalina.home}/conf/catalina-ant.properties"
classpathref="catalina_ant.path"/>
<target name="list"
description="List installed applications on servlet container">
<list
url="${catalina.manager.url}"
username="${catalina.manager.username}"
password="${catalina.manager.password}"/>
</target>
<target name="deployremote"
description="Install application to servlet container">
<echo message="ant dir: ${basedir}"/>
<echo message="app path: ${app.path}"/>
<echo message="app home: ${app.home}"/>
<deploy
url="${catalina.manager.url}"
username="${catalina.manager.username}"
password="${catalina.manager.password}"
path="${app.path}"
war="file:${app.home}"
update="true"/>
</target>
<target name="deploylocal"
description="Install application to servlet container">
<echo message="ant dir: ${basedir}"/>
<echo message="ant context: ${app.context}"/>
<echo message="app path: ${app.path}"/>
<echo message="app home: ${app.home}"/>
<deploy
url="${catalina.manager.url}"
username="${catalina.manager.username}"
password="${catalina.manager.password}"
path="${app.path}"
localWar="file:${app.home}"
config="file:${app.context}"
update="true"/>
</target>
<target name="reload"
description="Reload application on servlet container">
<echo message="app path: ${app.path}"/>
<reload
url="${catalina.manager.url}"
username="${catalina.manager.username}"
password="${catalina.manager.password}"
path="${app.path}"/>
</target>
<target name="undeploy"
description="Remove application on servlet container">
<echo message="app path: ${app.path}"/>
<undeploy
url="${catalina.manager.url}"
username="${catalina.manager.username}"
password="${catalina.manager.password}"
path="${app.path}"/>
</target>
<target name="start"
description="start application on servlet container">
<echo message="app path: ${app.path}"/>
<start
url="${catalina.manager.url}"
username="${catalina.manager.username}"
password="${catalina.manager.password}"
path="${app.path}"/>
</target>
<target name="stop"
description="Stop application on servlet container">
<echo message="app path: ${app.path}"/>
<stop
url="${catalina.manager.url}"
username="${catalina.manager.username}"
password="${catalina.manager.password}"
path="${app.path}"/>
</target>
</project>
Beispiel der Anwendung mit Ausgabe... Verschiedene properties Datei und schon
geht das Deployment leicht vor der Hand.
- Deploy auf den Produktionsserver:ant -Ddeploytarget=PROD deploy
|
Verwendung in anderen Skripten
| |
| | |
Verwendung in anderen Build Skripten Beispiel und
...
<property name="app.name" value="myapp"/>
<property name="app.path" value="/${app.name}" />
<property name="app.home" value="build/${app.name}.war" />
<property name="app.context" value="cond/${app.name}.xml" />
...
<target name="deploy" description="deploy app">
<ant antfile="tommanager.xml" target="deployremote">
<property name="app.path" value="${app.path}" />
<property name="app.home" value="${basedir}/${app.home}" />
<property name="app.context" value="${app.context}" />
</ant>
</target>
<target name="undeploy">
<ant antfile="tommanager.xml" target="undeploy">
<property name="app.path" value="${app.path}" />
</ant>
</target>
<target name="list">
<ant antfile="tommanager.xml" target="list">
<property name="app.path" value="${app.path}" />
</ant>
</target>
<target name="remove">
<ant antfile="tommanager.xml" target="remove">
<property name="app.path" value="${app.path}" />
</ant>
</target>
...
by Peter Roßbach
|