【问题标题】:memory leak warning on tomcat 7 shutdownTomcat 7关闭时的内存泄漏警告
【发布时间】:2018-02-24 01:01:07
【问题描述】:
每次关闭 tomcat 时都会收到以下消息。
严重 [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoader.clearReferencesThreads Web 应用程序 [/xxx] 似乎已经启动了一个名为 [xxxxx] 的线程,但未能停止它。这很可能会造成内存泄漏。
为什么会生成消息,我该如何解决?
【问题讨论】:
标签:
tomcat
memory-leaks
warnings
【解决方案1】:
为什么会生成这条消息?
Web 应用程序 [/xxx] 似乎已经启动了一个名为 [xxxxx] 的线程,但未能停止它。这很可能会造成内存泄漏。
我该如何解决?
您已成功匿名化问题中的线程名称。我只能假设这是您的 webapp 已在后台启动的线程(可能不在您的代码中,而是在某些库的代码中)。取消部署应用程序后,您必须将其关闭,或完全停止使用后台线程 - 例如通过使用执行者。
或者,如果您不将应用程序热部署到正在运行的 tomcat 中,则忽略它:您只会在关闭 tomcat 时收到此消息。如果 tomcat 没有真正关闭,您可能需要将此线程设置为守护进程,以便 JVM 在主线程终止时将其关闭。这很务实,但风格很糟糕。