tomcat java.lang.IllegalStateException: Illegal access: this web application instance has been stopped already. Could not load []


1.情景展示

  springboot項目打成的war包,在使用spring自帶的tomcat啟動可以正常運行,但是,將項目打包到外置tomcat中就啟動失敗,結果如下:

  java.lang.IllegalStateException: Illegal access: this web application instance has been stopped already. Could not load []

2.原因分析

   乍一看,好像和mysql有關系,其實不然,這個報錯信息並不是真正引發tomcat啟動異常的原因。我們需要鎖定的地方是:日志文件。

  真正的報錯信息,其實隱藏在localhost.log文件當中

  打開這個日志文件

  真正的異常在這里,根據這個文件的日志信息進一步鎖定就可以啦 

  我這里報的是:

  啟動過濾器異常 java.lang.AbstractMethodError。 

3.解決方案

  原來,在java中,高版本的jdk在實現過濾器接口的時候不用重寫init()和destroy()方法(jdk>1.8.*,具體是1.8.幾不知道);  

  低版本的jdk必須重寫上面兩個方法,否則,低版本的tomcat啟動就會報錯。

  重寫這兩個方法,重新打包,部署到tomcat上,項目就可以正常啟動啦。

// 低版本jdk需要重寫這兩個方法,否則tomcat啟動報錯:
// 抽象方法異常 java.lang.AbstractMethodError
@Override
public void init(FilterConfig filterConfig) {}
@Override
public void destroy() {}

  

寫在最后

  哪位大佬如若發現文章存在紕漏之處或需要補充更多內容,歡迎留言!!!

 相關推薦:

 


免責聲明!

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



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