tomcat filewatchdog but has failed to stop it原因以及解決方法


停止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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM