JSTL下NoClassDefFoundError : javax/servlet/jsp/jstl/core/Config错误
使用springmvc时,项目启动后发送请求报错
Type Exception Report
Message Handler processing failed; nested exception is java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config
Description The server encountered an unexpected condition that prevented it from fulfilling the request.
Exception
org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:986)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
Root Cause
java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config
在项目中我明明已经导入了JSTLjar包了。
网上说的有些版本即便你引入jstl1.2的包,uri处仍旧报错找不到标签。此时,我们还再引入standard包即可。但是也用maven引入了,依旧报错。
再次查询资料发现还可能Jar 包冲突了,这是日常开发过程中,时常会遇到的问题。于是就解决由 jstl 的 Maven 依赖导致的 Jar 包冲突问题
<dependency> <groupId>javax.servlet.jsp.jstl</groupId> <artifactId>jstl-api</artifactId> <version>1.2</version> <exclusions> <exclusion> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> </exclusion> <exclusion> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <version>1.1.2</version> </dependency>
不幸的是,结果图依旧是这个残忍的500
然后就开始了debug行动。经过漫长的测试后发现在DispatherServelt中报错了。。
可以看到是调用了modelview的时候出错,找不到视图了。。再看springmvc的配置,用到了JSTLView,于是做个测试,删掉这个试图后就可以访问了
但是我对于国际化等需要这个视图解析器啊,,于是不服气,继续找原因。。。最后!!!终于发现了,,在target下的lib下jar包确实没有新加进去的两个jar包!!!!!好吧,,被自己蠢哭了,,
加进去后重新启动就OK了。