Spring/SpringBoot學習中遇到的問題記錄(2):java.lang.ClassNotFoundException:org.apache.jsp.WEB_002dINF.views.xx

最近在學習Spring實戰第四版,學習到第5章,搭建SpringMVC時碰到了一個大問題。在這裏我記錄一下自己遇到的問題及解決辦法。

首先,先描述一下自己在IDEA中搭建基於Java配置的SpringMVC的過程。過程如下:

(1)新建一個基本的Java項目,如下

 確定好命名,點Finish。

 

 構建出的空項目,目錄結構如下:

 

(2)新建目錄:lib、web等。具體可以參考我的結構。(注意:項目沒添加web模塊之前,web文件夾圖標上不會出現小藍點,而且web.xml文件也是不存在的。後面會介紹如何添加web模塊) 

 

(3)將所需的jar包拷入lib文件夾下。 注意一下jstl-1.2這個包,我的問題就是這個包引起的。

 

(4) 點擊File--》ProjectStructure,打開下面的窗口,照箭頭方向將jar包正式引入到項目中:需要引入的主要有兩項:一項是剛纔拷入lib文件夾下jar包,可以點擊“+”----》JARs or directories... 在打開的窗口中直接選中項目下的lib文件夾即可。

 

 第二項是Tomcat所依賴的包,選擇Library,如果你的IDEA已經配置好自己的Tomcat,則會出現相對應版本的libraries,選擇之後,添加即可。

 注意:一定要引入Tomcat的libraries庫!!!!避免在項目中出現servlet-api、jasper包和jsp-api包等,這些包都包含在Tomcat本身的lib裏,不然會衝突!!!!

 (5)給項目添加Web模塊:選中ProjectStructure中的Facets選項,點擊“+”號,選擇Web選項。選擇之後記得看一眼WebResourceDiretory這個設置。這裏是你web資源(jsp頁面、css等靜態資源)的根目錄,如果和你的文件目錄不一樣記得修改一下。

(6)添加完Web模塊之後,選擇Artifacts選項,看看右邊所圈的內容是否有波浪線出現(WEB-INF下),如果有,底部會有提示,點擊Fix,然後點擊Apply就行。 

 

 (7)在編寫完代碼之後,將其部署到Tomcat上,設置可以參考下面我的設置

(8)部署完成之後,運行即可。 

 

 簡單介紹完流程之後,講一下我遇到的問題。一個是404問題,這個問題困擾我好久,我最後也沒解決,然後就按照上面的流程重新構建,接着就出現了我接下來的問題java.lang.ClassNotFoundException:org.apache.jsp.WEB_002dINF.views.home.jsp。網上說的多是servlet-api和jasper還有一個jsp-api的jar包與tomcat自帶的衝突。但是除了第一個jar包,後兩個我根本就沒引用,然後我將servlet-api換成和tomcat內置的servlet-api一致的版本,還是不行。最後我開始去查日誌,一查就找到問題了。

 看我圈出來的地方,至此,我明白了是jstl的問題,然後一查才發現,我之前的引用的是jstl-1.2-sources.jar,這下找到問題了。於是用jstl-1.2.jar替換,果然,問題解決。我查看的這個日誌位於:C盤.IntelliJIdea2019.1\system\tomcat\(項目部署到tomcat時的名字,在部署時控制檯可以查看到)\logs下一個名字爲localhost

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章