首页 > 解决方案 > Windows 中的 Tomcat WAR 文件部署失败

问题描述

我有一个在 Windows 环境中的 tomcat 容器中运行的应用程序。当我必须更新应用程序时,tomcat windows 服务停止,新的 ROOT.war 文件被复制到 webapps 文件夹中并重新启动 tomcat 服务。

有时会发生 ROOT.war 提取失败,提取的 ROOT 文件夹只有几个子文件夹和几个文件。显然,以下应用程序启动失败。为了解决这个问题,我必须停止tomcat,删除ROOT文件夹并再次运行,让tomcat从头重新提取ROOT.war。

我不明白为什么有时会发生,有时不会。但是,我无法创建自动更新。这太冒险了。

你知道为什么会发生吗?

标签: javatomcatextractweb-deploymentwar

解决方案


不释放资源。因此,当您尝试更新现有的 war 文件时,tomcat 无法在部署/重新部署之前删除旧文件。

要解决此问题,请确保:

  1. 该应用程序未在 Web 浏览器上打开/运行。
  2. 单击更新时,您不会陷入调试模式。
  3. 所有流程/请求都在重新部署之前完成。
  4. 所有文件/流都在代码中关闭。
  5. 当所有其他方法都失败时,您可能想要停止应用程序。然后更新。有一些方法可以使用命令行、批处理文件等来停止 tomcat 上的应用程序。然后您可以自动执行该过程。

如果您想要一种更可靠的方法来执行此操作,您可以使用 jrebel 或相同的免费版本。还有其他方法可以更新代码。基本上,独立的 tomcat 不比开发服务器更有价值。


推荐阅读