SpringBoot項(xiàng)目找不到j(luò)avax.servlet.Filter的問題及解決
SpringBoot找不到j(luò)avax.servlet.Filter的問題
新創(chuàng)建一個(gè)SpringBoot項(xiàng)目,編譯時(shí)出現(xiàn)了找不到j(luò)avax.servlet.Filter的異常。

這個(gè)類位于tomcat-embed這個(gè)jar下面,這里的解決方法并不是像網(wǎng)上大部分所說的手動(dòng)添加這個(gè)jar,因?yàn)檫@是由于沒有添加spring-boot-starter-web依賴造成的。
springboot項(xiàng)目默認(rèn)會(huì)添加spring-boot-starter和spring-boot-starter-test兩個(gè)依賴,而web項(xiàng)目需要spring-boot-starter-web依賴。
下面對(duì)比一下spring-boot-starter和spring-boot-starter-web這兩個(gè)依賴的區(qū)別:
spring-boot-starter-web:

spring-boot-starter,沒有web:

所以在maven里添加下面這個(gè)依賴即可:
<dependencies> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependencies>
啟動(dòng)SpringBoot項(xiàng)目找不到報(bào)錯(cuò)
java.lang.ClassNotFoundException: javax.servlet.Filter
出現(xiàn)該問題是因?yàn)槿鄙賘avax.servlet.Filter的Tomcat-embed-core-xxx.jar包;我們通常使用 spring-boot-starter-web 注入即可。

但是我檢查了maven本地倉庫中已經(jīng)有,且項(xiàng)目依賴maven中也存在該包;pom文件也注入了spring-boot-starter-web;編譯也通過不報(bào)錯(cuò)。但是就是項(xiàng)目啟動(dòng)報(bào)錯(cuò)。
經(jīng)過一番折騰,我仔細(xì)對(duì)比了pom文件的配置項(xiàng)內(nèi)容,發(fā)現(xiàn)有細(xì)小差異;
這是我配置的(有問題的)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>正確的配置(在遠(yuǎn)程maven倉庫中搜索的配置)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<version>2.3.1.RELEASE</version>
</dependency>
經(jīng)過對(duì)比,發(fā)現(xiàn) <scope>provided</scope> 是導(dǎo)致報(bào)錯(cuò)的根源;所以直接刪除這個(gè)屬性;添加版本號(hào)屬性,重啟錯(cuò)誤得到解決。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- SpringBoot集成WebServlet出現(xiàn)自定義servlet請(qǐng)求失敗的問題解決方案
- SpringBoot里使用Servlet進(jìn)行請(qǐng)求的實(shí)現(xiàn)示例
- springboot掃描自定義的servlet和filter代碼詳解
- Springboot注入成員變量HttpServletRequest的原理分析
- SpringBoot3.1.2 引入Swagger報(bào)錯(cuò)Type javax.servlet.http.HttpServletRequest not present解決辦法
- 解決IDEA啟動(dòng)springboot項(xiàng)目報(bào)錯(cuò)java.lang.ClassNotFoundException:?javax.servlet.ServletContext
- SpringBoot獲取HttpServletRequest的3種方式總結(jié)
- Springboot如何添加server.servlet.context-path相關(guān)使用
- SpringBoot如何切換成其它的嵌入式Servlet容器(Jetty和Undertow)
相關(guān)文章
JPA?查詢?cè)鶶QL轉(zhuǎn)換VO對(duì)象方式
這篇文章主要介紹了JPA?查詢?cè)鶶QL轉(zhuǎn)換VO對(duì)象方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
關(guān)于JDK15的新特性之TextBlocks文本塊的引入和使用
這篇文章主要介紹了關(guān)于JDK15的新特性之文本塊的引入和使用,如果具有一種語言學(xué)機(jī)制,可以比多行文字更直觀地表示字符串,而且可以跨越多行,而且不會(huì)出現(xiàn)轉(zhuǎn)義的視覺混亂,那么這將提高廣泛Java類程序的可讀性和可寫性,需要的朋友可以參考下2023-07-07
Java處理圖片實(shí)現(xiàn)base64編碼轉(zhuǎn)換
這篇文章主要介紹了Java處理圖片實(shí)現(xiàn)base64編碼轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02
SpringBoot 配合 SpringSecurity 實(shí)現(xiàn)自動(dòng)登錄功能的代碼
這篇文章主要介紹了SpringBoot 配合 SpringSecurity 實(shí)現(xiàn)自動(dòng)登錄功能的代碼,代碼簡單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09
Java實(shí)現(xiàn)兩人五子棋游戲(五) 判斷是否有一方勝出
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)兩人五子棋游戲,判斷是否有一方勝出,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03
Java模擬實(shí)現(xiàn)HTTP服務(wù)器項(xiàng)目實(shí)戰(zhàn)
本文主要介紹了Java模擬實(shí)現(xiàn)HTTP服務(wù)器項(xiàng)目實(shí)戰(zhàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
Java8中的LocalDateTime你會(huì)使用了嗎
LocalDateTime?是?Java?8?中日期時(shí)間?API?提供的一個(gè)類,在日期和時(shí)間的表示上提供了更加豐富和靈活的支持,本文就來講講LocalDateTime的一些具體使用方法吧2023-05-05

