If an application throws a lot of class not found information, you generally suspect packet collisions. But Tomcat's webappclassloader has this problem:
Assuming an application advertisement fails, the started property of WebappClassLoader is set to false. Then other threads assume that the class load continues to be performed using WebappClassLoader, a large number of class not found exceptions
Be thrown:
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}
So if there is a large number of classnotfoundexception words, first search whether there is a webappclassloader.stoppedkeyword bar.