放置新war文件时,Tomcat webapp文件夹被破坏
通常,当我将更新的WAR文件放入Tomcat的放置新war文件时,Tomcat webapp文件夹被破坏,tomcat,deployment,Tomcat,Deployment,通常,当我将更新的WAR文件放入Tomcat的webapps文件夹时,相应的webapp会自动更新 但有时,当我放入更新的WAR文件时,会发生一件奇怪的事情:除了一些随机收集的文件外,该Web应用程序的大部分文件夹都被删除了。当然,在这种情况下,webapp不再工作。为了让它工作,我必须停止Tomcat,完全删除该webapp的文件夹,然后重新启动Tomcat 在将WAR文件放入webapps之前,我试图从Tomcat管理器中停止webapp,但没有效果 我试图将autodeploy和/或unp
webapps
文件夹时,相应的webapp会自动更新
但有时,当我放入更新的WAR文件时,会发生一件奇怪的事情:除了一些随机收集的文件外,该Web应用程序的大部分文件夹都被删除了。当然,在这种情况下,webapp不再工作。为了让它工作,我必须停止Tomcat,完全删除该webapp的文件夹,然后重新启动Tomcat
在将WAR文件放入webapps
之前,我试图从Tomcat管理器中停止webapp,但没有效果
我试图将autodeploy
和/或unpackwars
更改为false,但当我放入新的war文件时,webapp根本没有更新
我还尝试使用Jenkins的部署插件,但同样的问题发生了
系统规范:Windows 2003上的Tomcat 7。根据Tomcat 7配置指南: 更新WAR文件将触发应用程序的取消部署,其中 删除任何关联的扩展目录、上下文文件和 工作目录。任何当前用户会话都不会被持久化 应用程序将在下次自动部署程序检查时重新部署 为了改变。” 可能问题在于,自动部署程序还没有完成删除扩展目录的工作,而另一个线程开始重新部署它 我的解决方法是删除旧的war文件,等待目录被删除,然后才放入新的war文件,因为: 删除WAR文件将触发应用程序的取消部署,其中 删除任何关联的扩展目录、上下文文件和 工作目录。将不会持久化任何当前用户会话。“ 听起来像是“反资源走私” 免责声明:1。是的,我知道这是个老问题。2.完全未经测试 我没有尝试过这个,所以这是未经测试的纯粹的“书籍”的东西。来吧 (已存档)至少提到在Windows上进行热部署需要额外的步骤。即 在Windows上,这假定防锁功能(请参阅 已启用上下文配置),否则无法 删除正在运行的web应用程序的资源 …而合适的配置开关似乎是一种叫做
反资源锁定的东西,它显然
允许在可能发生文件锁定的平台或配置上进行完整的webapp热部署和取消部署
(Source.Archived.)
我不确定,但所有这些听起来确实有点像“如果您尝试在Windows上热部署而不使用antiresourcelock=true,则可能会发生未定义的行为”。这听起来很糟糕
进一步阅读
- 矩阵。从文档中的矩阵判断,我认为它相当复杂。
(因此,我个人的底线是:我不会使用自动部署,除非我必须这样做。而是按照您所做的操作,手动删除目录并解包。)
(已存档。)