Tomcat+Spring+Quartz Restart or shutdown error

环境描述

Intellij Idea 14.1.7

Tomcat 6.0.48

Spring 2.5.6.SEC01

Quartz 1.8.5

问题描述

在 Intellij Idea 中首次可以正常启动 Tomcat 和 Web 应用,但是在 Intellij Idea 中执行重启的时候,控制台中就会包以下的错误,导致无法正常重启或者关闭,必须要启动任务管理器, 强制杀调 java.exe 进程才行。

严重: The web application [] appears to have started a thread named [DefaultQuartzScheduler_QuartzSchedulerThread] but has failed to stop it. This is very likely to create a memory leak.

解决方案

引起该问题的原因是项目中添加了 Quartz 相关的 jar 包,在Web应用启动的时候,会在后台生成相应的线程池和正在运行的后台线程。Web 应用重启或者停止的时候,对应的线程无法关闭,导致整个应用挂起。

为了避免该问题的发生,需要在 web.xml  添加 Quartz 的监听

<!-- Quartz -->

<listener>

   <listener-class>org.quartz.ee.servlet.QuartzInitializerListener</listener-class>

</listener>

参考资料

【Quartz 官方文档 How-To: Shutting Down a Scheduler】

http://www.quartz-scheduler.org/documentation/quartz-2.x/cookbook/ShutdownScheduler

 

【Stackoverflow tomcat + spring + quartz = shutdown error】

https://stackoverflow.com/questions/28164312/tomcat-spring-quartz-shutdown-error

posted @ 2017-09-20 09:09  LuQingshang  阅读(302)  评论(0编辑  收藏  举报