Tomcat运行时异常: Illegal access: this web application instance has been stopped already

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.

一般有Illegal access: this web application instance has been stopped already.  Could not load+....+The eventual following stack trace is caused by+.......这种类型的错误都是因为重新加载失败引起的;

 

原因:

tomcat重新装载web应用程序失败导致的。当应用程序卸载时,并不会关闭所有的线程。当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>标签内部,至今没有出现问题。
 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值