首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >由于守护程序线程,Tomcat未完全关闭

由于守护程序线程,Tomcat未完全关闭
EN

Stack Overflow用户
提问于 2010-09-29 01:50:23
回答 3查看 6.3K关注 0票数 3

我们运行我们的web应用程序,我们启动一些线程作为后台工作,也启动Quartz。当我尝试关闭tomcat (在linux上使用shell脚本)时,我总是收到错误消息,说由于守护进程线程和Quartz线程导致无法关闭tomcat。我们已经尝试了不同的方法来关闭我们的线程(退出run方法),但是我们依赖于类的几个静态变量来做这件事,当我关闭的监听器得到一个回调时,这些变量就变成了null

在这种情况下,有没有标准的方法来关闭tomcat?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-09-29 01:58:07

现在,对于可能的答案(如果您使用Spring),请查看this thread。如果您使用Spring,那么可以在Quartz的spring配置中添加一个显式的destroy子句,这样它就可以干净利落地关闭。

或者是Servlet侦听器(我认为是ServletContext侦听器,但已经有一段时间了……)可以检测关闭,您可以手动关闭Quartz。

票数 5
EN

Stack Overflow用户

发布于 2010-09-29 01:53:40

不是答案,但很高兴知道:

JVM不为守护线程提供任何关机保证。他们就会停下来。不,最后,没有垃圾回收,什么都没有。

票数 3
EN

Stack Overflow用户

发布于 2010-09-29 09:12:38

FInally,我能够得到它。问题不是tomcat,而是我们的应用程序起诉Initialize的方式。按照servlet规范,我们将应用程序(启动这些线程的类)的初始化移到了侦听器中,servlet是最后加载和卸载的,其中侦听器首先加载,最后从服务器卸载。extraneon提供的Spring链接非常有用

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3815587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档