JSTL下NoClassDefFoundError : javax/servlet/jsp/jstl/core/Config錯誤,
使用springmvc時,項目啟動後發送請求報錯
Type Exception ReportMessage Handler processing failed; nested exception is java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/ConfigDescription The server encountered an unexpected condition that prevented it from fulfilling the request.Exceptionorg.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 Causejava.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了。