71

我在 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

4 回答 4

128

这在 Windows 环境中很常见,但是通过antiResourceLockingcontext 属性有一个解决方案:

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

<Context antiResourceLocking="true">

编辑:在@JanM 评论之后更新了属性。以前它还包含“antiJARLocking”

于 2013-02-15T16:54:17.937 回答
13

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

于 2013-02-15T15:18:35.717 回答
2

我在 Apache Tomcat/8.0.5 中遇到了同样的问题。我使用管理器应用程序执行了以下步骤,它对我有用。

  • 关闭浏览器,包括所有选项卡(删除缓存)。
  • 重新打开“Manager App”并首先确保应用程序已停止(应启用开始按钮)。
  • 现在单击取消部署。

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

如果您真的对状态感到困惑,请关闭浏览器,重新启动 tomcat,打开“管理器应用程序”,单击停止,然后取消部署。

于 2015-11-25T13:03:00.967 回答
0

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

于 2020-09-15T10:37:53.733 回答