java.lang.NoClassDefFoundError - 无法初始化org.springframework.web.util.NestedServletException

时间:2018-01-04 17:38:27

标签: java maven spring-mvc

我正在尝试创建一个简单的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错误的原因?

1 个答案:

答案 0 :(得分:0)

首先,了解NoClassDefFoundError和ClassDefNotFound之间的区别会有所帮助。第一种情况发生在运行时未找到文件时,后者发生在编译时未找到类时发生。

您的代码抛出错误(“NestedServletException”),并且您的设置在运行时找不到此异常定义。请包含“spring-web”maven依赖项,并确保它已正确部署在您的服务器中以解决此问题。

一旦修复了这个问题,你仍然需要解决为什么会抛出这个异常的原因,但希望你能摆脱这个令人讨厌的“NoClassDefFoundError”。