【Tomcat運行時異常:Illegal access: this web application instance has been stopped already.】


Illegal access: this web application instance has been stopped already. Could not load [org.quartz.StatefulJob]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access.

非法訪問:這個web應用程序實例已經被停止了。無法加載[org.quartz.StatefulJob]。為了調試目的,拋出了下面的堆棧跟蹤,並嘗試終止導致非法訪問的線程。

 

在使用tomcat啟動運行項目時,總是會出現這個錯誤,雖然不影響項目運行但是看着還是很不舒服的,一大堆錯誤提示。

原因:在tomcat重啟的時候,因為之前的tomcat中的線程還沒有完全關閉,新啟動tomcat就會報這個異常,不過這個不影響正常使用,只是跳個異常挺煩人的。使用過hibernate, spring或其他大型組件,當一個WEB應用系統中有很多類時,如果開啟了Tomcat的reloadable=true,那么每當相關文件改變時, Tomcat會停止web app並釋放內存,然后重新加載web app.這實在是個浩大的工程。所以我們總是在想如果能有只重載某幾個類的功能,將極大的滿足了我們的調試。

解決辦法:

方法1:修改tomcat目錄下的context.xml,找到<Context>標簽,把reloadble的屬性值設為:reloadable="false",即<Context reloadable="false">。

找到修改后,好像沒有怎么報錯了,但是很快又發現似乎沒有什么效果,依舊會出現錯誤提示。

方法2:將tomcat的server.xml中的Context的reloadable設成false。比如:<Context path="/expert" docBase="expert" debug="0" reloadable="false">

在server.xml中並沒有找到context的配置信息,所以干脆就把“<Context path="/expert" docBase="expert" debug="0" reloadable="false"></Context>”加在了server標簽內部,至今沒有出現問題。

原文:https://blog.csdn.net/qq_30714157/article/details/81236434


免責聲明!

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



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