Tomcat取消部署不会删除web应用程序构件

Tomcat取消部署不会删除web应用程序构件,tomcat,Tomcat,在使用管理器取消部署应用程序时,如何让Tomcat删除web应用程序工件 我正在使用Tomcat 6.0.18。应用程序是使用TomcatMaven插件1.0-SNAPSHOT部署的,但是通过maven插件或web界面的行为是相同的 Tomcat文档提供了有关取消部署在服务器上的行为的警告 可以删除war文件;但是,未打包的应用程序目录仍然阻止重新部署 您的应用程序可能无法完全取消部署,因为有后台线程(很可能是您自己启动的)或长时间运行的请求阻止应用程序完全停止 你检查过日志文件了吗?他们是否

在使用管理器取消部署应用程序时,如何让Tomcat删除web应用程序工件

我正在使用Tomcat 6.0.18。应用程序是使用TomcatMaven插件1.0-SNAPSHOT部署的,但是通过maven插件或web界面的行为是相同的

Tomcat文档提供了有关取消部署在服务器上的行为的警告


可以删除war文件;但是,未打包的应用程序目录仍然阻止重新部署

您的应用程序可能无法完全取消部署,因为有后台线程(很可能是您自己启动的)或长时间运行的请求阻止应用程序完全停止

你检查过日志文件了吗?他们是否声明应用程序是否可以成功取消部署?还是相反?在您尝试取消部署(在Unix上kill-3ProcessID,在Windows控制台中Ctrl-Break)并查看是否仍在运行某些不应该停止的程序后,是否可以获得线程转储


还要注意的是,我见过的大多数应用程序都无法完全取消部署,因为它们占用了内存。我经常遇到OutOfMemoryErrors(PermGen),特别是在重新部署Web应用程序之后(如果你搜索PermGen,你会发现很多关于它的参考资料),因此我认为重新部署对于开发机器来说是可以的,但对于生产机器来说不是。最好在生产过程中对此感到困惑之前就知道这一点。

如果您通过应用程序中的URL访问JAR库中的资源,则文件锁定(尤其是在Windows上)也可能存在问题

我刚刚遇到了一个类似的问题,通过在

ApacheTomcat/conf/context.xml

提交至:

<Context antiJARLocking="true" antiResourceLocking="true" >


(请注意,由于每次重新部署都会创建webapp的副本,因此这是否安全生产存在一些争议,但如果您在Windows上,并且无法从源位置解决问题,那么这可能会提供一个可行的解决方案)。

这一技巧对我来说是可行的。我在使用“grails test tomcat undeploy”命令取消部署grails应用程序时遇到问题。但是有了这些选项,它才神奇地开始工作注意,Tomcat docs说:“
防Jarlocking
反资源锁定的一个子集,因此,为了防止重复工作和可能出现的问题,在任何时候都只能将其中一个属性设置为true。”。