[已解决]Tomcat重新部署项目报错this web application instance has been stopped already
解决方法:
重新部署时关掉游览器中正在访问项目的页面,或者重启服务器都可以解决该问题。
问题分析:
当热部署Web应用程序时,可能因IDE进行热部署或者重新部署项目时,因之前在游览器中创建的线程仍在运行。但重新部署后他们的类加载器/上下文是无效的,并且由于它的原始web应用程序(以前的运行时环境)已被重新部署,因此面临非法访问异常/非法状态异常。
因此,正如此处所述,重新启动并不能永久解决此问题。所以最好实现线程池的托管。
原问题
今天在写SSM项目时因为修改了一点业务代码就重新部署了下,然后就报了个错。详细错误信息如下:
copyorg.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading Illegal access: this web application instance has been stopped already. Could not load []. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access. java.lang.IllegalStateException: Illegal access: this web application instance has been stopped already. Could not load []. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access. at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1355) at org.apache.catalina.loader.WebappClassLoaderBase.getResource(WebappClassLoaderBase.java:1025) at com.mysql.jdbc.AbandonedConnectionCleanupThread.checkContextClassLoaders(AbandonedConnectionCleanupThread.java:90) at com.mysql.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:63) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) at java.base/java.lang.Thread.run(Thread.java:832)
关键信息如下:
copythis web application instance has been stopped already. Could not load [].
项目环境:
IDE:IDEA 2021.3.1
服务器:Tomcat8.0.50
游览器:Microsoft Edge Bate
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)