点击jsp时java.lang.NoClassDefFoundError

时间:2014-12-19 11:40:36

标签: java jsp tomcat

我有代码,其中包含名为:

的包
package com.test.core.it;

仅此包内的所有类。有一个.jsp文件,其中包含以下代码:

test.executeAllTestCase();

testTestA的一个实例,它位于包com.test.core.it中。 executeAllTestCase的行如下:

TestB.getInstance()

TestB也在同一个包中。

我建立了战争并部署到了tomcat。当点击网址时:

http://localhost:8080

jsp被调用,这就是我的异常:

javax.servlet.ServletException: java.lang.NoClassDefFoundError: Could not initialize class com.test.core.it.TestB
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:912)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:841)

我不确定,我在哪里弄错了。

修改

我可以看到这些类已加载到WEB-INF - &gt; classes - &gt; <package wise directory> - &gt; TestA.class, TestB.class

2 个答案:

答案 0 :(得分:1)

在类TestB的静态初始化期间可能是异常。
第一次。当java加载一个类时,执行静态初始值设定项。如果你有一个例外,java将不会再次尝试加载类定义,而是抛出NoClassDefFoundError。因此,在第一个NoClassDefFoundError

之前可能存在疏忽异常

答案 1 :(得分:0)

如果在运行时找不到类,通常会发生这种情况:   - 确保您的类路径包含jar。 或者类路径上存在两个具有相同名称的类,在这种情况下,JVM不知道要加载哪个类。

  • 检查您的类路径并确保它在编译期间与您的类路径相同。