天天看點

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包了。

JSTL下NoClassDefFoundError : javax/servlet/jsp/jstl/core/Config錯誤

網上說的有些版本即便你引入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

JSTL下NoClassDefFoundError : javax/servlet/jsp/jstl/core/Config錯誤

然後就開始了debug行動。經過漫長的測試後發現在DispatherServelt中報錯了。。

JSTL下NoClassDefFoundError : javax/servlet/jsp/jstl/core/Config錯誤

可以看到是調用了modelview的時候出錯,找不到視圖了。。再看springmvc的配置,用到了JSTLView,于是做個測試,删掉這個試圖後就可以通路了

JSTL下NoClassDefFoundError : javax/servlet/jsp/jstl/core/Config錯誤

但是我對于國際化等需要這個視圖解析器啊,,于是不服氣,繼續找原因。。。最後!!!終于發現了,,在target下的lib下jar包确實沒有新加進去的兩個jar包!!!!!好吧,,被自己蠢哭了,,

JSTL下NoClassDefFoundError : javax/servlet/jsp/jstl/core/Config錯誤
JSTL下NoClassDefFoundError : javax/servlet/jsp/jstl/core/Config錯誤

加進去後重新啟動就OK了。

轉載于:https://www.cnblogs.com/DoJavaByHeart/p/7493407.html