取消部署Tomcat Web应用程序时如何防止文件锁定?

时间:2013-02-14 10:57:02

标签: tomcat memory-leaks tomcat7 file-locking undeploy

我在tomcat 7中使用经理应用程序, 我无法完全取消部署应用程序。

它说 FAIL - Unable to delete [F:\apache-tomcat-7.0.33\webapps\balaji]. The continued presence of this file may cause problems.

我读到它的某处是因为某种现象称为内存泄漏,如果我们修复它,问题就会解决。

谁能告诉我tomcat 7中的这个内存泄漏是什么,我们如何解决? 我正在使用Windows 7操作系统。 如果我能够修复它,我的非部署和重新部署过程将顺利进行吗?

4 个答案:

答案 0 :(得分:114)

这在Windows环境中非常常见,但通过antiResourceLocking上下文属性提供了解决方案:

从/ tomcat / conf文件夹打开context.xml并修改上下文以匹配:

<Context antiResourceLocking="true">
  

编辑:@JanM评论后更新的属性。以前它还包含'antiJARLocking'

答案 1 :(得分:13)

这是tomcat的常见问题之一。 Tomcat服务器在启动时捕获资源并部署它。在取消部署时,某些资源仍将由tomcat使用。它还没有释放资源,但与此同时,tomcat中的另一个线程会尝试清理相同的资源。因此,删除这些资源将失败。 一种最好的方法是手动清理webapps中的应用程序根目录。

答案 2 :(得分:0)

我在Apache Tomcat / 8.0.5中遇到过同样的问题。我使用经理App进行了以下步骤,它对我有用。

  • 关闭包含所有标签的浏览器(删除缓存)。
  • 重新打开'经理应用'并首先确保该应用是 停止(应启用启动按钮)。
  • 现在点击取消部署。

我认为当我们直接点击取消部署时,首先它会锁定jar,停止应用程序并尝试取消部署,但失败并显示FAIL - Unable to delete消息。

如果您确实对状态感到困惑,请关闭浏览器,重启tomcat,打开'manager App',点击停止然后取消部署。

答案 3 :(得分:0)

以管理员身份运行IDE。它对我有用