2017-09-14 36 views
0

每次關機tomcat時我都會收到以下消息。關於tomcat 7的內存泄露警告關機

嚴重[本地主機-startStop-2] org.apache.catalina.loader.WebappClassLoader.clearReferencesThreads Web應用[/ XXX]似乎已經開始了一個名爲線程[XXXXX],但未能阻止它。這很可能造成內存泄漏。

爲什麼會生成消息,我該如何解決?

回答

0

爲什麼生成此消息?

Web應用程序[/ xxx]似乎啓動了一個名爲[xxxxx]的線程,但未能停止它。這很可能造成內存泄漏。

我該如何解決?

您已成功匿名問題中的線程名稱。我只能假設它是你的web應用程序在後臺啓動的線程(可能不在你的代碼中,但在某些庫的代碼中)。在取消部署應用程序後,您必須關閉它,或者完全停止使用後臺線程 - 例如通過使用執行者。或者,如果您沒有將應用程序熱部署到正在運行的tomcat中,只需忽略它:您只會在關閉tomcat時收到此消息。如果tomcat沒有真正關閉,你可能需要使這個線程成爲一個守護進程,這樣當主線程終止時,JVM會關閉它。這非常務實,但風格不好。