【问题标题】:Tomcat Auto Deploy Feature is this good?Tomcat Auto Deploy Feature 好用吗?
【发布时间】:2026-02-07 06:10:02
【问题描述】:

我在生产服务器中下载并设置了我的 Apache Tomcat 6。然后我启动它看它是否在运行,发现它还可以。

它运行,然后我将我的项目战争文件放在那里。当我注意到我的 web 存档文件已经解压缩并且我的项目 web 文件已经设置在 web 应用程序文件夹中时,我正要重新启动 tomcat 服务。

我认为,我的设置具有自动部署功能,但我一直在想这是否是件好事?

我有这些问题:

  1. Tomcat 真的会自动部署 Web 存档文件吗?它执行的频率是多少?
  2. 这是一个不错的功能吗?
  3. 那么,如果我将战争文件留在那里怎么办,这是否意味着 Tomcat 会不时重新加载或解压缩存档文件?
  4. Tomcat 对我的 war 文件所做的操作是否与我正确重启我的 tomcat 并让 tomcat 服务部署我的 war 文件时相同?

【问题讨论】:

    标签: tomcat tomcat6


    【解决方案1】:

    看看manual。它说:

    如果主机 autoDeploy 属性为“true”,主机将尝试根据需要动态部署和更新 Web 应用程序,例如,如果将新的 .WAR 放入 appBase 中

    这是否是一个不错的功能取决于您的要求。我从事的所有项目都不需要这个,但是嘿 - 你的故事可能会有所不同。

    Autodeploy 与重新启动 Tomcat 的功能相同,它会发现一个 .war 文件,唯一的区别是必须有一个轮询线程来查找 appBase 中的更改文件夹。

    【讨论】:

      【解决方案2】:

      使用此自动部署功能时要小心。如果存在现有版本,它将首先“取消部署”应用程序,并且还将删除上下文配置文件 ($CATALINA_HOME/conf/[engine-name]/[host-name]/[app-name].xml).

      【讨论】:

      • 仅当您取消部署时,例如如果你删除了war文件,那么上下文就会被删除。如果您重新部署,例如当您在 server.xml 中使用设置 autoDeploy="true" 替换 war 文件时,不会删除上下文。所以你的说法是错误的。
      • 更新 WAR 文件将触发应用程序的取消部署,并删除任何相关的扩展目录、上下文文件和工作目录。不会保留任何当前用户会话。 tomcat.apache.org/tomcat-6.0-doc/config/…