【发布时间】:2013-10-18 14:17:32
【问题描述】:
这个错误非常令人费解。在我的 webapps 中,根据推荐,我在 WEB-IF/classes 中有 log4j.properties。
当我从 Eclipse 部署时,我会在 webapp 上停止,取消部署,然后部署。奇怪的是,10 次中有 8 次在取消部署时收到以下错误 -
build.xml:526: FAIL - 无法删除 [C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\punch]。此文件的继续存在可能会导致问题。
我的 webapp 下剩下的唯一文件是 WEB-INF/classes/log4j.properties。其他所有内容都被删除。
我也无法手动删除文件或 webapp 文件夹。我必须停止Tomcat服务,删除文件夹然后重新启动。
有什么解决办法吗?
谢谢。
这是我在 build.xml 中的删除任务
<target name="remove"
description="Remove application on servlet container">
<stop url="${manager.url}"
username="${manager.username}"
password="${manager.password}"
path="${app.path}"/>
<undeploy url="${manager.url}"
username="${manager.username}"
password="${manager.password}"
path="${app.path}"/>
</target>
【问题讨论】:
-
Tomcat 存在一些文件锁定问题。我见过很多次,但我从未找到解决方案。
-
Tomcat 没有任何已知的文件锁定问题。许多第三方库确实存在问题,而 Tomcat 跳过了许多障碍来解决已知问题。解决方案是通过探查器确定文件上的锁定是什么,然后找出如何释放它。这可能需要针对库的错误报告以提供 shutdown() 类型方法。
标签: tomcat web-applications log4j undeploy