1. 程式人生 > >【錯誤解決】 java.lang.ClassNotFoundException: org.apache.jsp.WEB_002dINF.classes.views.index_jsp

【錯誤解決】 java.lang.ClassNotFoundException: org.apache.jsp.WEB_002dINF.classes.views.index_jsp

今天建立Spring MVC骨架的時候,突然遇到這麼一個問題~~

HTTP Status 500 - java.lang.ClassNotFoundException: org.apache.jsp.WEB_002dINF.classes.views.index_jsp

type Exception report

message java.lang.ClassNotFoundException: org.apache.jsp.WEB_002dINF.classes.views.index_jsp

description The server encountered an internal error that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException:
java.lang.ClassNotFoundException: org.apache.jsp.WEB_002dINF.classes.views.index_jsp org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:177) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369) org.apache.jasper.servlet.JspServlet.serviceJspFile
(JspServlet.java:390) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:168) org.springframework.web
.servlet.view.AbstractView.render(AbstractView.java:303) org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1244) org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1027) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:971) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)

當時挺懵逼的,以為是少了哪個類,以為是Servlet類或者是jsp的類少了,結果發現jar包都有啊,沒少。
而且應該是不需要的啊,Tomcact帶著有的啊。

後來經過搜尋,有很多說是jar包起衝突了:

有一定道理,然後我將包移出

問題還是存在~

經過一番摸索,搜尋之後,問題都沒有解決。

然後我看到我的JDK用的是1.8,我想,不會是這個的問題吧。
在開始建Maven專案的時候我選擇 的是1.8:

因為我另外一個SpringMVC專案用的是1.7的,沒有問題,配置什麼的都和這個差不多,可是今天搭建SpringMVC的骨架的時候就出問題了。

然後我去改JDK,

注意,我還需要修改pom.xml中的java版本。需要一致!


    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.3</version>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>
        </plugins>
    </build>

需要修改java.version這個的值。

修改完成後:

執行。就可以了!

Spring MVC的骨架原始碼,也是這個出問題的原始碼,現在已經被除錯好了,但是如果你將JDK換成1.8的(注意同時修改pom.xml中的java版本),應該還會出現那個問題。

本篇部落格涉及到的原始碼連結:

至於為什麼換了1.7版本的JDK之後就可以運行了,而換成1.8的JDK卻不可以。暫不明白原因!

望知道的在評論區指點一二,謝謝。

本文章由[諳憶]編寫, 所有權利保留。
歡迎轉載,分享是進步的源泉。