我正在尝试创建一个简单的SpringMVC项目(使用Maven作为项目依赖项)来命中路径并呈现视图,同时我能够点击路径(我能够从System.out打印消息)我的方法中的.print语句)视图不呈现,我收到此错误:
java.lang.NoClassDefFoundError:无法初始化类org.springframework.web.util.NestedServletException。
我打印出类路径,因为NoClassDefFoundError可以与我在路由方法中使用此语句的相关:
ClassLoader cl = ClassLoader.getSystemClassLoader();
URL[] urls = ((URLClassLoader)cl).getURLs();
for(URL url: urls){
System.out.println(url.getFile());
}
出现的唯一的罐子是:
/C:/Users/cpfister/eclipse/luna-java-8u20/configuration/org.eclipse.osgi/1080/0/.cp/lib/jsp-api-2.1.jar
/C:/Users/cpfister/eclipse/luna-java-8u20/configuration/org.eclipse.osgi/1080/0/.cp/lib/jetty-util-6.1.26.jar
/C:/Users/cpfister/eclipse/luna-java-8u20/configuration/org.eclipse.osgi/1080/0/.cp/lib/core-3.1.1.jar
/C:/Users/cpfister/eclipse/luna-java-8u20/configuration/org.eclipse.osgi/1080/0/.cp/lib/jsp-2.1.jar
/C:/Users/cpfister/eclipse/luna-java-8u20/configuration/org.eclipse.osgi/1080/0/.cp/lib/jetty-management-6.1.26.jar
/C:/Users/cpfister/eclipse/luna-java-8u20/configuration/org.eclipse.osgi/1080/0/.cp/lib/jetty-6.1.26.jar
/C:/Users/cpfister/eclipse/luna-java-8u20/configuration/org.eclipse.osgi/1080/0/.cp/lib/servlet-api-2.5-20081211.jar
/C:/Users/cpfister/eclipse/luna-java-8u20/configuration/org.eclipse.osgi/1080/0/.cp/lib/bootstrap.jar
基于此,似乎我的maven依赖项(如spring-web)没有放在我的类路径中,所以我想知道这是否是我得到ClassDefNotFound错误的原因?
答案 0 :(得分:0)
首先,了解NoClassDefFoundError和ClassDefNotFound之间的区别会有所帮助。第一种情况发生在运行时未找到文件时,后者发生在编译时未找到类时发生。
您的代码抛出错误(“NestedServletException”),并且您的设置在运行时找不到此异常定义。请包含“spring-web”maven依赖项,并确保它已正确部署在您的服务器中以解决此问题。
一旦修复了这个问题,你仍然需要解决为什么会抛出这个异常的原因,但希望你能摆脱这个令人讨厌的“NoClassDefFoundError”。