解决Tomcat异常:java.lang.IllegalStateException: 非法访问:此Web应用程序实例已停止。无法加载。为了调试以及终止导致非法访问的线程,将抛出以下堆栈跟踪。

这篇具有很好参考价值的文章主要介绍了解决Tomcat异常:java.lang.IllegalStateException: 非法访问:此Web应用程序实例已停止。无法加载。为了调试以及终止导致非法访问的线程,将抛出以下堆栈跟踪。。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

调试项目的时候发现每次使用idea重新部署项目时会出现这个错误,但是不影响实际使用,重启服务器第一次部署时也不会出现错误,尝试搜索解决这个问题。

解决Tomcat异常:java.lang.IllegalStateException: 非法访问:此Web应用程序实例已停止。无法加载。为了调试以及终止导致非法访问的线程,将抛出以下堆栈跟踪。,java,开发语言

解决方法:

进入tomcat目录下查找配置文件,conf > Context.xml,查找Context标签,修改属性reloadble为 reloadable=“false” (如果没有reloadable属性,就自己创建一个)

<Context reloadable="false">
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <WatchedResource>WEB-INF/tomcat-web.xml</WatchedResource>
    <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>
    <Manager pathname="SESSIONS.ser" />
</Context>

reloadable的功能:如果这个属性设为true,tomcat服务器在运行状态下会监视在WEB-INF/classes和WEB-INF/lib目录下class文件的改动,如果监测到有class文件被更新的,服务器会自动重新加载Web应用 ,也就是热部署。 有助于调试servlet和其它的class文件,但这样用加重服务器运行负荷,建议在Web应用的发存阶段将reloadable设为false。

后续问题:

如果reloadable变为false后依然有一个报错:

解决Tomcat异常:java.lang.IllegalStateException: 非法访问:此Web应用程序实例已停止。无法加载。为了调试以及终止导致非法访问的线程,将抛出以下堆栈跟踪。,java,开发语言

意思是注册过jdbc驱动,在容器关闭时没有注销,并且是在AbandonedConnectionCleanupThread线程中。 所以为了内存避免泄露,就强制注销了驱动。

解决方法:

写一个容器监听器,在容器销毁时注销AbandonedConnectionCleanupThread。

网上的查找到的监听器代码是基于旧版驱动的,我修改了一个新版本的,记得在配置中添加对应的包扫描文章来源地址https://www.toymoban.com/news/detail-756712.html

import com.mysql.cj.jdbc.AbandonedConnectionCleanupThread;
import jakarta.servlet.ServletContextEvent;
import jakarta.servlet.ServletContextListener;
import jakarta.servlet.annotation.WebListener;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Enumeration;

@WebListener
public class MyContextListener implements ServletContextListener {
    //注销驱动,防止服务器重新部署时jdbc报错
    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        Enumeration<Driver> drivers = DriverManager.getDrivers();
        while (drivers.hasMoreElements()) {
            try {
                DriverManager.deregisterDriver(drivers.nextElement());
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        // 关闭AbandonedConnectionCleanupThread线程
        AbandonedConnectionCleanupThread.checkedShutdown();
        System.out.println("注销驱动、关闭AbandonedConnectionCleanupThread线程");
    }
}

到了这里,关于解决Tomcat异常:java.lang.IllegalStateException: 非法访问:此Web应用程序实例已停止。无法加载。为了调试以及终止导致非法访问的线程,将抛出以下堆栈跟踪。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【异常解决】java.lang.IllegalStateException: No primary or single unique constructor found for interface

    Springboot + vue3 批量删除规则接口:前端请求如下 后端服务接口请求的方法如下: 结果报错,详情如下: java.lang.IllegalStateException: No primary or single unique constructor found for interface java.util.List 前端请求不变,后端服务接口请求的方法参数上添加 @RequestBody 即可。 本文完结!

    2024年02月05日
    浏览(53)
  • 解决java.lang.IllegalStateException: Cannot call sendError() after the response has been committed异常

    相信大家自己在用spring boot写restful风格的接口时特别是写文件下载或文件导出时会碰到java.lang.IllegalStateException: Cannot call sendError() after the response has been committed这样的bug,很多人可能一脸困惑,就好奇为什么我文件都已经可以正常导出了,为什么在日志中还是会出现这样的报错

    2024年02月16日
    浏览(44)
  • 深入解析java.lang.IllegalStateException异常

    异常是程序在执行过程中遇到的错误或异常情况。在Java中,异常是指在程序运行期间发生的错误,它可以打破程序的正常流程,并且可能导致程序终止。 异常分为两种类型:受检异常(checked exception)和非受检异常(unchecked exception)。 受检异常:在方法声明中必须显式地声

    2024年02月10日
    浏览(46)
  • SpringBoot项目配置Eureka时,内嵌TomCat无法启动java.lang.IllegalStateException: StandardEngine[Tomcat].Standa

    java.lang.IllegalStateException: StandardEngine[Tomcat].StandardHost[localhost].TomcatEmbeddedContext[] failed to start SpringBoot项目可以正常启动,但是一添加@EnableEurekaServer相关注解再启动SpringBoot就报如上错误。我是因为有两个jdk版本,一个8一个17. 从根本原因可以看出是SpringBoot的内嵌Tomcat报错,这是

    2024年02月09日
    浏览(42)
  • 解决Caused by: java.lang.IllegalStateException:

    目录 问题描述 解决方案 1. 修改JVM的-Xss参数 2. 检查循环继承依赖项 3. 更新相关库和依赖 总结 在使用Java开发Web应用程序时,我们有时会遇到​ ​Caused by: java.lang.IllegalStateException​ ​​异常,其中包含一个关于StackOverflow错误的描述。这种错误可能会导致无法完成对Web应用程

    2024年02月03日
    浏览(99)
  • 已解决java.lang.IllegalStateException: Duplicate key

    已解决java.lang.IllegalStateException: Duplicate key java.lang.IllegalStateException: Duplicate key java.lang.IllegalStateException: Duplicate key 是由于在使用 Map 或 Set 时,试图将一个已经存在的键值或元素添加到集合中而引发的异常。 下滑查看解决方法 要解决这个问题,可以采取以下步骤: 确保你使用

    2024年02月07日
    浏览(49)
  • 【Android】okhttp爆java.lang.IllegalStateException: closed的解决方法

    java.lang.IllegalStateException: closed 异常通常是由于OkHttp中的 Response 对象在调用 response.body().string() 后被关闭而导致的。 在代码中,在 onResponse() 方法中如果两次调用了 response.body().string() ,每次调用都会消耗掉响应体并关闭 Response 对象。因此,当第二次调用 response.body().string() 时

    2024年02月12日
    浏览(38)
  • 解决Caused by: java.lang.IllegalStateException: Ambiguous mapping. Cannot map ‘inteController‘

    出现这个错也可能会出现项目无法启动的错误。完整错误是 一、错误出现原因 :         controller层出现了重复的方法映射                  可以看到图片中两个方法的映射是一样的,这是问题所在 解决方法也很简单,既然已经知道了问题所在那么解决起来也很简单

    2024年02月10日
    浏览(44)
  • Java IDEA java.lang.IllegalStateException: Failed to introspect Class报错原因和解决办法

    发现是因为 org.redisson:redisson.spring.boot.starter 3.10.6这个包引入不进来导致的报错 尝试了clean invalid caches and restart都没法解决后 放大招,查看maven右侧Dependencies每一个点进去看是否有jar包冲突,发现有一个包里有一个redis的包, 怀疑jar包冲突,尝试把这个包exclusion掉,可以成功运

    2024年02月04日
    浏览(52)
  • 详细解决java中的Collectors.toMap引起的java.lang.IllegalStateException: Duplicate key xxx 的错误

    今天,测试在禅道上给我指出一个正式环境 bug ,如下图所示: 即 java.lang.IllegalStateException: Duplicate key 2 。 根据 java.lang.IllegalStateException: Duplicate key 2 可知,这是 java 抛出的存在 2个重复键 的错误。 如果想要弄清楚错误原因,通过如下几个步骤分析: 首先,看到这个错误信息

    2024年01月19日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包