我有代码,其中包含名为:
的包package com.test.core.it;
仅此包内的所有类。有一个.jsp
文件,其中包含以下代码:
test.executeAllTestCase();
test
是TestA
的一个实例,它位于包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
- > classes
- &gt; <package wise directory>
- &gt; TestA.class, TestB.class
答案 0 :(得分:1)
在类TestB的静态初始化期间可能是异常。
第一次。当java加载一个类时,执行静态初始值设定项。如果你有一个例外,java将不会再次尝试加载类定义,而是抛出NoClassDefFoundError。因此,在第一个NoClassDefFoundError
答案 1 :(得分:0)
如果在运行时找不到类,通常会发生这种情况: - 确保您的类路径包含jar。 或者类路径上存在两个具有相同名称的类,在这种情况下,JVM不知道要加载哪个类。