停止tomcat,有些時候會報The web application [/XXX] appears to have started a thread named [FileWatchdog] but has failed to stop it.
導致這個錯誤的原因是在web.xml配置了
<context-param> <param-name>log4jRefreshInterval</param-name> <param-value>60000</param-value> </context-param>
所以,啟動了一個檢測log4j.properties變化的線程,只不過在1.2.x的log4j實現中,這個線程無法被interupt,所以會出現這個錯誤。
事實上,這個錯誤在2002年的時候就出現了,只不過log4j官方一直都沒有修復。
原先計划在1.3中修復,后來,就沒有后來的1.3版本了,到了2.x版本。
1.2和2.x不兼容性太多,以至於無法平滑升級。
所以要解決這個異常,有三個解決方法:1、升級到2.x;2、去掉自動檢測這個配置(事實上95%以上的場景都沒有必要);3、自己寫個servletcontextlistener強行中止該線程。
詳細可參考:https://bz.apache.org/bugzilla/show_bug.cgi?id=4913