首页 » 技术分享 » Tomcat运行时异常:Illegal access: this web application instance has been stopped already.

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标签内部,至今没有出现问题。

转载自原文链接, 如需删除请联系管理员。

原文链接:Tomcat运行时异常:Illegal access: this web application instance has been stopped already.,转载请注明来源!

0