Are you using Tomcat 4 or Tomcat 5? For Tomcat 5, the deploy task works
great. However, for Tomcat 4, I have found there is no "perfect"
solution. The install task for Tomcat 4 is for installing web
applications found on the same server as Tomcat. The deploy task for
Tomcat 4 is for installing web applications to a remote Tomcat server,
but it does not have a "config" parameter. Therefore you cannot install
a web application remotely using a context file.
I have found the best method is to copy the WAR file and the context
file to the same server that Tomcat is running on and then use the
install task.
<scp file="${web.home}/META-INF/context.xml"
[EMAIL PROTECTED]:${catalina.home}/webapps/${a
pp.name}.xml
port="${scp.port}"
password="${server.password}"
trust="true"/>
<scp file="${dist.home}/${app.name}-${app.version}.war"
todir="[EMAIL PROTECTED]:${catalina.home}/webapps/${
app.name}.war"
port="${scp.port}"
password="${server.password}"
trust="true"/>
<install url="${manager.url}"
username="${manager.username}"
password="${manager.password}"
path="${app.path}"
config="file:${catalina.home}/webapps/${app.name}.xml
war="${app.name}.war"/>
Rob Abernethy
Dynamic Edge, Inc.
-----Original Message-----
From: Andrew Shirk [mailto:[EMAIL PROTECTED]
Sent: Thursday, January 22, 2004 11:46 AM
To: [EMAIL PROTECTED]
Cc: Matt Raible
Subject: Re: Tomcat's Ant Tasks [Install]
The trick is to use the deploy task rather than the install task, and
include the context.xml (make sure it's named context.xml) in the
META-INF
directory inside the war file. Tomcat will find the context file, and
add
the contents to the server.xml file. Then, use redeploy to deploy
changes,
or undeploy to remove. Once you've got that all set up, it works
remarkably
well.
Andrew
At 04:22 PM 1/21/2004, Matt Raible wrote:
>Is it possible to use the <install> ant task to deploy to a remote
>server? I would think so, but it
>seems that the Manager app of Tomcat tries to load the "context" file
on
>the remote server...
>
> <install url="${tomcat.manager.url}"
> username="${tomcat.username}"
> password="${tomcat.password}"
> config="file:${webapp.dist}/${webapp.name}.xml"
> war="jar:file:${webapp.dist}/${webapp.war}!/"/>
>
>Is there anyway to do this, i.e. packaging the context.xml in the JAR
and
>telling the manager app
>to get it from there - or can I only deploy to localhost when I have a
>context.xml involved?
>
>On another note, is it possible to put all the ant task definitions in
a
>file that can be referenced
>when - so all tasks can be declared at once. Cactus does this and it's
a
>handy feature. I've
>added it to my project by doing the following.
>
>1. Created a tomcatTasks.properties file with the following contents:
>
>deploy=org.apache.catalina.ant.DeployTask
>install=org.apache.catalina.ant.InstallTask
>list=org.apache.catalina.ant.ListTask
>reload=org.apache.catalina.ant.ReloadTask
>remove=org.apache.catalina.ant.RemoveTask
>resources=org.apache.catalina.ant.ResourcesTask
>roles=org.apache.catalina.ant.RolesTask
>start=org.apache.catalina.ant.StartTask
>stop=org.apache.catalina.ant.StopTask
>undeploy=org.apache.catalina.ant.UndeployTask
>
>2. Define my tasks using:
>
> <taskdef file="${ant-contrib.dir}/tomcatTasks.properties">
> <classpath>
> <pathelement
path="${tomcat.home}/server/lib/catalina-ant.jar"/>
> </classpath>
> </taskdef>
>
>This certainly cuts down on the size of my build.xml file by about 20
lines!
>
>Thanks,
>
>Matt
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: [EMAIL PROTECTED]
>For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]