我也遇到了同样的问题,并且在雄猫控制台中可以看到以下警告
2014年7月30日3:20:16 PM org.apache.catalina.loader.WebappClassLoader
clearReferencesThreads警告:Web应用程序[/
rmlcrm]似乎已启动名为[C3P0PooledConnectionPoolManager [identityToken->
1hge50p9311d8syo1hfjimz |
19ddf1db#-Helper]的线程0],但未能停止。这很可能造成内存泄漏。线程的堆栈跟踪:java.lang.Object.wait(本机方法)com.mchange.v2.async.ThreadPoolAsynchronousRunner
$ PoolThread.run(ThreadPoolAsynchronousRunner.java:635)
NicholasHemley在帖子中的评论之一建议添加一个自定义ServletContextListener并显式关闭侦听器的contextDestroyed()方法中的C3P0连接,该方法将在取消部署应用程序时执行。
我们没有完全使用我们不想与C3P0硬耦合的代码。但是我们意识到我们没有在应用程序中的任何地方关闭hibernate会话工厂。我们在ServletContextListener的contextDestroyed()中添加了代码以关闭hibernate会话工厂。现在我们没有错误,并且在tomcat控制台中也没有得到警告。



