如何防止文件锁定时卸载 Tomcat 网络应用程序?

我正在使用 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操作系统。 如果我能够修复它,我的取消部署和重新部署过程运行顺利吗?

54763 次浏览

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

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

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

<Context antiResourceLocking="true">

编辑:@JanM 注释后更新的属性。以前它也包含‘ antiJARLock’

我在 Apache Tomcat 遇到过同样的问题/8.0.5。我使用经理应用程序做了以下步骤,它为我工作。

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

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

如果您确实对状态感到困惑,请关闭浏览器,重新启动 tomcat,打开“ Manager App”,单击 stop 然后取消部署。

作为管理员运行您的 IDE,它对我很有用