我目前正在使用tomcat - 7.0.52
以下是tomcat挂起时的线程转储。在这个 pool-3-thread-1 是挂起的线程,但是我无法调试哪个应用程序代码正在启动它。
(如果按ctrl + c,它会关闭tomcat,但在使用shutdown.bat时挂起)
答案 0 :(得分:2)
问题与Hibernate(4.0)有关,因为hibernate无法关闭ConnectionProvider(org.hibernate.engine.jdbc.connections.spi.ConnectionProvider)。 手动关闭ConnectionProvider -
try{ SessionFactoryImpl sf = (SessionFactoryImpl)factory; ConnectionProvider cp = sf.getConnectionProvider(); if (Stoppable.class.isInstance(cp)) { ((Stoppable) cp).stop(); } }catch(Exception e){ LOGGER.error("unable to stop connectionProvider",e); } this.factory.close(); }