tomcat关闭内存泄漏,java线程无法停止

tomcat关闭内存泄漏,java线程无法停止,java,tomcat,memory-leaks,shutdown,Java,Tomcat,Memory Leaks,Shutdown,全部: 这是我的问题:当我使用shundown.bat关闭tomcat时,它失败了,下面是一些日志: Severe: The web application [/shop] appears to have started a thread named [ConnectionStateManager-0] but has failed to stop it. This is very likely to create a memory leak. 2013-10-22 11:38:10 org.

全部: 这是我的问题:当我使用shundown.bat关闭tomcat时,它失败了,下面是一些日志:

Severe: The web application [/shop] appears to have started a thread named [ConnectionStateManager-0] but has failed to stop it. This is very likely to create a memory leak.

2013-10-22 11:38:10 org.apache.catalina.loader.WebappClassLoader clearReferences

Severe: The web application [/shop] appears to have started a thread named [CuratorFramework-0] but has failed to stop it. This is very likely to create a memory leak.
从日志中我们可以知道它可能是一些线程无法停止,并可能导致内存泄漏


有没有人看到过这一点,或者有人可以给出一些解决方案,谢谢你

好吧,如果你正在关闭tomcat,那么线程是否停止并不重要。一旦java进程结束,每个线程都将死亡,内存将被释放

请注意java进程不会挂起,也许您可以在shutdown.bat中添加kill规则,使用
-force
(请参阅tomcat手册,我不知道windows),或者从任务管理器中检查它

希望一切顺利

附言。
因为我记得我的环境中总是有这些日志行,但我从来没有遇到过任何问题

如果你把这个问题直接问那家商店服务员的创造者,也许是最好的,只有他/她知道


Servlet应该是无状态的,但不一定是无状态的。但是,如果您脱离了无状态系统(在本例中是通过保持一个特殊线程处于活动状态),TomCat将无法再确保正确完成清理,因此会发出警告。因此,如果编码正确,这可能是一个问题,但不一定是这样。

tomcat似乎不会杀死webapps启动的守护进程线程,我们需要重写ServletContextListener的contextDestroyed(ServletContextEventarg0)方法来停止守护进程线程。这个异常并没有困扰我们,但不管怎样,它是一个bug或错误,我想修复它。