让Tomcat重新加载具有静态上下文的Web应用程序

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

   

但我确实希望dreambear Web应用程序在没有重新启动的情况下自动重新加载,以用于开发目的(因此这是在SO上,而不是服务器故障)。

Catalina / localhost / dreambear.xml

    

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

  • (主机:unpackWARs = false):未检测到新版本的WAR
  • (主机:unpackWARs = true):未解压缩WAR的新版本
  • (主机:unpackWARs = true):如果我删除解压缩的目录,新的WAR将被解压缩但不会部署。

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

我尝试了一些组合,并且没有一个组合将从WAR文件重新部署,并将autoDeploy设置为false

由于文档声明,在Context中将reloadable设置为true不起作用

如果您希望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文件,则应取消部署,然后再使用update参数部署或部署应用程序以获取更改。