tomcat的webappclassloader中一个奇怪的异常信息
如果一个应用抛出大量的Class not found信息,一般你会怀疑包冲突。可是tomcat的webappclassloader却有这样的问题:
如果一个应用发布出现问题, webappclassloader的started属性被设为false.然后其它线程如果继续使用webappclassloader进行class load,则大量的Class not found异常
被抛出:
1391 public Class loadClass(String name, boolean resolve)
1392 throws ClassNotFoundException {
1393
1394 synchronized (name.intern()) {
1395 if (log.isDebugEnabled())
1396 log.debug("loadClass(" + name + ", " + resolve + ")");
1397 Class clazz = null;
1398
1399 // Log access to stopped classloader
1400 if (!started) {
1401 try {
1402 throw new IllegalStateException();
1403 } catch (IllegalStateException e) {
1404 log.info(sm.getString("webappClassLoader.stopped", name), e);
1405 }
1406 }
...................................................................
1516 throw new ClassNotFoundException(name);
1517 }
1518 }
所以如果有大量的ClassNotFoundException的话先搜索一下是否有webappClassLoader.stopped关键字吧。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。