tomcat6.0下的一个web应用,本来一直好好的,大概在一周前,有次tomcat重启,之后当调用某个类的方法是就是出现NoClassDefFound 的异常,而且仅仅是这个类,其他类都正常。(这个类肯定是定义了的)
  重启再试,有可能完全正常,也有可能再次出现 NoClassDefFound 的异常,随机出现,没法把握的
现在一重启,就要试试,如果出现NoClassDefFound ,就再重启,直到正常。真实郁闷,大家说说怎么会出现这样的问题啊?有没有出现同样问题的同胞啊?

解决方案 »

  1.   

    我的tomcat也时常会出错!
    同一个网页有时候行,有时候不行,我也很郁闷...
      

  2.   

    这不是你cat的question,绝对是你项目中类文件程序有问题,好好看看,遇到过!
      

  3.   

    你的问题可能和这个有点像:
    http://topic.csdn.net/t/20051010/16/4317079.html我的问题很郁闷,NoClassDefFound报的类 是我自己定义的类,明明有,以前也没有问题,现在也是时灵时不灵的,抓狂中
      

  4.   

    一个可能的原因就是在多个路径中放入了同样的class或jar文件,不同的ClassLoader会有不同的类路径设置,你检查一下抛出异常类的ClassLoader是哪一个,然后看看你的class文件是否在其路径。
      

  5.   

    怎么看ClassLoader是哪一个?怎么看它的路径,
    呵呵,以前没深入到这些东西,能不能说明白一些呢?
      

  6.   

    NoClassDefFound:  
       当 Java 虚拟机或 ClassLoader 实例试图在类的定义中加载(作为通常方法调用的一部分或者作为使用new 表达式创建的新实例的一部分),但无法找到该类的定义时,抛出此异常。 
    我的理解:
    当在一个类中,用到了另外一个类,这里的用到是指:在某个方法中用到或者是通过new 表达式创建新实例, 如果无法找到该类的定义,则抛出些异常。ClassNotFound:
        当应用程序试图使用以下方法通过字符串名加载类时,抛出该异常:         Class 类中的 forName 方法。 
            ClassLoader 类中的 findSystemClass 方法。 
            ClassLoader 类中的 loadClass 方法。
    我的理解:
    只有通过ClassLoader显式的load(上面列举的三种方式)一个类,却找不到该类时,抛出该异常。
      

  7.   

    最土最土的办法,删除tomcat,重新安装tomcat,重新部署应用,解决问题。。但不知道是什么原因