2

我有一个Host不会自动部署所有 Web 应用程序的设备。

  <Host name="localhost"  appBase="webapps"
        unpackWARs="true" autoDeploy="false"
        xmlValidation="false" xmlNamespaceAware="false">

但出于开发目的,我确实希望Dreambear Web 应用程序无需重新启动即可自动重新加载(因此这是在 SO 上,而不是在服务器故障上)。

Catalina/localhost/dreambear.xml

<Context reloadable="true">
    <Parameter name="gamePageUrl" value="http://****/dreambear.html" />
</Context>

我通过将 dreambear.war 放在 webapps 目录中来部署 Web 应用程序。不幸的是,它不会自动重新加载:

  • (Host:unpackWARs = false):未检测到新版本的WAR
  • (Host:unpackWARs = true):新版本的WAR没有解包
  • (Host:unpackWARs = true):如果我删除解压后的目录,新的WAR会被解压但不会部署。

有没有办法实现我想要的?我不想启用autoDeploy,因为每次我放入新的 WAR 时都会删除我的上下文 xml(请参见此处)。

4

1 回答 1

3

我尝试了一些组合,但它们都不会从 WAR 文件中重新部署并autoDeploy设置为false.

设置reloadabletrueinContext不起作用,因为文档状态

如果您希望 Catalina 监视 /WEB-INF/classes/ 和 /WEB-INF/lib 中的类的更改,请设置为 true,并在检测到更改时自动重新加载 Web 应用程序。

我也尝试过从管理器网络应用程序重新加载

http://localhost:8080/manager/reload?path=/dreambear

然而,这也不会因战争而改变

当 Web 应用程序上下文不可重新加载并且您更新了 /WEB-INF/classes 目录中的类或属性文件,或者当您添加或更新了 /WEB-INF/lib 目录中的 jar 文件时,这可能很有用。

经理文档对此更清楚

目前,当直接从 WAR 文件部署 Web 应用程序时,不支持重新加载应用程序(以获取对类或 web.xml 文件的更改)。它仅在从解压缩目录部署 Web 应用程序时才有效。如果您使用的是 WAR 文件,则应取消部署,然后使用更新参数再次部署或部署应用程序以获取您的更改。

于 2010-10-18T07:00:42.293 回答