让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参数部署或部署应用程序以获取更改。