windowsのtomcatには問題があります。
tomcat6.xでは確かめてませんが、5.5では確認しました。
【問題点】
WARファイルのアンデプロイ(配備解除)をするときに、中のJARファイルなどがロックされて削除できません。
ですので、次に同じWARファイルをデプロイしても、ちゃんと展開されません。
例えば私の環境では、
「$TOMCAT_HOME/webapp/アプリ名/WEB-INF/lib/commons-validator-1.3.1.jar」
が削除されない、という事象が発生しました。
【原因】
ネットを検索してみたところ、理由は以下のもようです。
windows版のTomcatは古いファイルシステム(windows 98やME)の時代に作られて、その時代のソースを流用してしまっているようです。
ファイルのロックはOS自体がバージョンによってロックの仕方を大きく変えてきました。
おそらく、TomcatがOSのバージョンについていけていないのでしょう。
ですので、ファイルロックがおかしくなっているようです。
【回避策】
Tomcatのホームディレクトリの下の以下のファイルを書き変えます。
ファイル: conf/context.xml
変更例:以下の赤字の箇所
<!-- The contents of this file will be loaded for each web application -->
<Context antiJARLocking ="true" antiResourceLocking="true" >
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<!-- Uncomment this to disable session persistence across Tomcat restarts -->
<!--
<Manager pathname="" />
-->
</Context>
変更の意味:
上記の属性は、Jarファイルのロックをしないというものと、リソースファイルのロックをしないというものです。
これにより、アプリケーションの起動時間は遅くなりますが、ロックの問題を回避できます。
参考: