You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ant.apache.org by untz <un...@yahoo.com> on 2006/12/08 18:19:12 UTC

Problem running Undeploy Target in Tomcat 5.5.9

Hello there,

I am using JDK 1.5, Eclipse 3.2, and Tomcat 5.5.9. I wrote a build script which compiles, packages (via war file) the source, deploys (moves the war into TOMCAT_HOME/webapps), and is supposed to undeploy (by deleting the particular web app's directory & war file under TOMCAT_HOME/webapps).

The problem that I am encountering is that while Tomcat is running, I have a lib directory: TOMCAT_HOME/MyWebApp/WEB-INF/lib which contains several needed jar files. It seems that when I run my Ant's undeploy target, it refuses to delete the lib directory and thus the build breaks:

Buildfile: C:\DevProjects\guess_number\build.xml
undeploy:
   [delete] Deleting directory C:\DevTools\tomcat\jakarta-tomcat-5.5.9\webapps\NumberGuess

BUILD FAILED
C:\DevProjects\guess_number\build.xml:57: Unable to delete file C:\DevTools\tomcat\jakarta-tomcat-5.5.9\webapps\NumberGuess\WEB-INF\lib\Echo2_App.jar

Total time: 345 milliseconds

build script:
<?xml version="1.0"?>
<project name="NumberGuess" default="deploy" basedir=".">
   
    <property file="build.properties"/>

    <target name="prepare">
        <mkdir dir="${webapp.build.dir}" />
        <mkdir dir="${webapp.build.dir}/WEB-INF" />
        <mkdir dir="${webapp.build.dir}/WEB-INF/lib" />
        <mkdir dir="${webapp.build.dir}/WEB-INF/classes" />
    </target>
    
    <target name="static" depends="prepare">
        <!-- Copy web files -->
        <copy todir="${webapp.build.dir}/">
            <fileset dir="web" />
        </copy>
        <!-- Copy webapp configuration files -->
        <copy todir="${webapp.build.dir}/WEB-INF/">
            <fileset dir="etc" />
        </copy>
        <!-- Copy library files -->
        <copy todir="${webapp.build.dir}/WEB-INF/lib/">
           <fileset dir="lib" />
        </copy>
        <!-- Copy images -->
        <copy todir="${webapp.build.dir}/WEB-INF/classes/echo2tutorial/">
            <fileset dir="images"/>
        </copy>
    </target>
    
    <target name="compile" depends="static">
        <javac   srcdir="src"
                 destdir="${webapp.build.dir}/WEB-INF/classes/"
                 deprecation="off" debug="on" optimize="off">
          <classpath>
            <!-- Include all JAR files in my local library -->
            <fileset dir="lib">
                <include name="*.jar"/>
            </fileset>
            <!-- Include all common libraries in Tomcat -->
            <fileset dir="${tomcat.home}/common/lib">
                <include name="*.jar"/>
            </fileset>
          </classpath>
        </javac>
      </target>

    <target name="deploy" depends="compile">
        <jar jarfile="${build.dir}/${webapp.name}.war" basedir="${webapp.build.dir}" />
        <!-- Copy the newly built WAR file into the deployment directory -->
        <copy file="${build.dir}/${webapp.name}.war" todir="${tomcat.deployment.dir}" />
      </target>
      
    <target name="undeploy">
        <!-- Delete the deployment directory -->
        <delete dir="${tomcat.deployment.dir}/${webapp.name}" />
        <delete file="${tomcat.deployment.dir}/${webapp.name}.war" />
    </target>

    <target name="clean" 
            description="Clears all generated files, including build directories, distributables, and documentation.">
        <delete dir="${build.dir}"/>
    </target>
</project>

build.properties:

project.name=NumberGuess
build.dir=./build

# Webapp properties for the project
webapp.name=NumberGuess
webapp.build.dir=${build.dir}/${webapp.name}
webapp.virtual.host=localhost

# Tomcat properties
tomcat.home=C:/DevTools/tomcat/jakarta-tomcat-5.5.9
tomcat.deployment.dir=${tomcat.home}/webapps

When I manually shutdown Tomcat, I am able to run my undeploy target just fine... But I need it to be able to undeploy while Tomcat is running.

Many, many thanks!

-Unnsse


Re: Problem running Undeploy Target in Tomcat 5.5.9

Posted by Steve Loughran <st...@apache.org>.
untz wrote:
> Hello there,
> 
> I am using JDK 1.5, Eclipse 3.2, and Tomcat 5.5.9. I wrote a build script which compiles, packages (via war file) the source, deploys (moves the war into TOMCAT_HOME/webapps), and is supposed to undeploy (by deleting the particular web app's directory & war file under TOMCAT_HOME/webapps).
> 
> The problem that I am encountering is that while Tomcat is running, I have a lib directory: TOMCAT_HOME/MyWebApp/WEB-INF/lib which contains several needed jar files. It seems that when I run my Ant's undeploy target, it refuses to delete the lib directory and thus the build breaks:
> 
> Buildfile: C:\DevProjects\guess_number\build.xml
> undeploy:
>    [delete] Deleting directory C:\DevTools\tomcat\jakarta-tomcat-5.5.9\webapps\NumberGuess
> 
> BUILD FAILED
> C:\DevProjects\guess_number\build.xml:57: Unable to delete file C:\DevTools\tomcat\jakarta-tomcat-5.5.9\webapps\NumberGuess\WEB-INF\lib\Echo2_App.jar

> 
> When I manually shutdown Tomcat, I am able to run my undeploy target just fine... But I need it to be able to undeploy while Tomcat is running.
> 

Means there are files in use; tomcat has the files open and you cannot 
delete them.

Switching to unix will fix this, but not much else

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org