Unter einem hotdeployment versteht man das deployen einer Applikation ohne dabei den Applikationserver/Servletcontainer herunterzufahren. Um mit Ant ein hotdeployment aus einem Tomcat durchfuehren zu koennen, muss vorher Der TCD (Tomcat Client Deployer) heruntergeladen werden, der hier zur Verfuegung steht: http://tomcat.apache.org/download-60.cgi. Die JAR-Files aus dem TCD sollten im Classpath zu finden sein.
Die Nachfolgenden Properties sollten fuer ein hotdeployment deklariert werden:
<property name="path" value="/myapp" /> <property name="url" value="http://localhost:8080/manager" /> <property name="username" value="tomcat" /> <property name="password" value="tompassword" />
Mit dem folgenden Eintrag wird der Ant Task fuer den Manager konfiguriert.
<path id="deployer.classpath" > <fileset dir="${basedir}/lib" > <include name="*.jar" /> </fileset> </path> <taskdef resource="org/apache/catalina/ant/catalina.tasks" classpathref="deployer.classpath" />
Mit den folgend Targets kann eine Applikation neu geladen, undeployt und deployt werden.
<target name="reload" > <reload url="${url}" username="${username}" password="${password}" path="${path}" /> </target> <target name="undeploy" > <undeploy url="${url}" username="${username}" password="${password}" path="${path}" /> </target> <target name="hotdeploy" > <deploy url="${url}" username="${username}" password="${password}" path="${path}" war="${projectWARFile}" /> </target>
Eine ausführliche Beschreibung aller Task ist auf der Homepage von Tomcat zu finden.
http://tomcat.apache.org/tomcat-6.0-doc/deployer-howto.html
Nicht selten endet das hotdeployment in einem OutOfMemmoryException. Mit dem Mechanismus des HotDeployments hatte Tomcat schon immer Probleme. Ich empfehle fuer das deployen auf Tomcats nur harddeployments, die ich im vorherigen Blogeintrag beschrieben habe.