Illegal access: this web application instance has been stopped already.

先看出错信息:(其实这个报错,就是不顺眼,不会影响工程的。)

 

2010-2-8 20:33:56 org.apache.catalina.core.StandardContext reload
信息: Reloading this Context has started
********** Remove Context 9999999999
2010-2-8 20:33:56 org.apache.catalina.core.ApplicationContext log
信息: Closing Spring root WebApplicationContext
[INFO ]|2010/02/08 20:33:56|SessionFactoryImpl.java|(close:769)closing
2010-2-8 20:33:56 org.apache.catalina.core.ApplicationContext log
信息: Shutting down log4j
2010-2-8 20:33:57 org.apache.catalina.core.ApplicationContext log
信息: Set web app root system property: 'webapp.root' = [C:\Softdn\product\wyweb\WebRoot\]
2010-2-8 20:33:57 org.apache.catalina.core.ApplicationContext log
信息: Initializing log4j from [C:\Softdn\product\wyweb\WebRoot\WEB-INF\log4j.properties]
2010-2-8 20:33:57 org.apache.catalina.core.ApplicationContext log
信息: Initializing Spring root WebApplicationContext
2010-2-8 20:33:57 org.apache.catalina.loader.WebappClassLoader loadClass
信息: Illegal access: this web application instance has been stopped already .  Could not load com.mysql.jdbc.SQLError .  The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact.
java.lang.IllegalStateException
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1273)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
    at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3270)
    at com.mysql.jdbc.MysqlIO.quit(MysqlIO.java:1659)
    at com.mysql.jdbc.ConnectionImpl.realClose(ConnectionImpl.java:4296)
    at com.mysql.jdbc.ConnectionImpl.cleanup(ConnectionImpl.java:1265)
    at com.mysql.jdbc.ConnectionImpl.finalize(ConnectionImpl.java:2667)
    at java.lang.ref.Finalizer.invokeFinalizeMethod(Native Method)
    at java.lang.ref.Finalizer.runFinalizer(Finalizer.java:83)
    at java.lang.ref.Finalizer.access$100(Finalizer.java:14)
    at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:160)

 

这个错误比较隐蔽的说,我们来个看报错信息倒推,这样最直接啦。

要满足如下条件才会出现这个错误:

1,看:this web application instance has been stopped already

     所以,需要重启Tomcat的情况下才有可能发上,这是第一个出错条件。

2,看:Could not load com.mysql.jdbc.SQLError

     看这个不能直接推出问题产生条件,但是很明显是关于mysql jdbc的。

     所以,应该是在使用了mysql jdbc时(其一) 或 加载时(其二)发生的。

     这时候就出现了种情况,那么到底是那种条件呢? 还是两其一、其二都会产生?

     仅凭以上数据无法判断,这时要用关闭tomcat,重启tomcat,来判断是否跟其二条件有关,

     全部关闭后,重启tomcat,没有问题出现上述报错信息,系统正常。

     所以,肯定是因为使用了mysql jdbc时报的错,这样,第二个必要条件就找到了。

总结以上两点,通俗点讲,就是你重启了工程(可能是因为直接修改代码,工程reload了), 并且,连过了数据库(登录等),才出现了上述报错信息。

 

    想吧,首先想到的是什么? 缓存和jar包加载顺序,是我能想到的,不知道你想到了什么。

 

    我想到的是,在使用db 链接时,重新加载了mysql的驱动jar包导致的。

 

    于是乎,将WebRoot\WEB-INF\lib下的mysql-connector-java-5.1.7-bin.jar剪贴 到Tomcat 6.0\lib下,

    就避免了上述报错。

 

    表达不清楚之处,请多多指教!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值