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)上大部分所說(shuō)的手動(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本地倉(cāng)庫(kù)中已經(jīng)有,且項(xiàng)目依賴maven中也存在該包;pom文件也注入了spring-boot-starter-web;編譯也通過(guò)不報(bào)錯(cuò)。但是就是項(xiàng)目啟動(dòng)報(bào)錯(cuò)。
經(jīng)過(guò)一番折騰,我仔細(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倉(cāng)庫(kù)中搜索的配置)
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <version>2.3.1.RELEASE</version> </dependency>
經(jīng)過(guò)對(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)文章
Java數(shù)據(jù)結(jié)構(gòu)之雙端鏈表原理與實(shí)現(xiàn)方法
這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)之雙端鏈表原理與實(shí)現(xiàn)方法,簡(jiǎn)單描述了雙端鏈表的概念、原理并結(jié)合實(shí)例形式分析了java實(shí)現(xiàn)雙端鏈表的相關(guān)操作技巧,需要的朋友可以參考下2017-10-10springboot+thymeleaf整合阿里云OOS對(duì)象存儲(chǔ)圖片的實(shí)現(xiàn)
本文主要介紹了springboot+thymeleaf整合阿里云OOS對(duì)象存儲(chǔ)圖片的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05Java繪圖技術(shù)基礎(chǔ)(實(shí)例講解)
下面小編就為大家?guī)?lái)一篇Java繪圖技術(shù)基礎(chǔ)(實(shí)例講解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08實(shí)例講解Java批量插入、更新數(shù)據(jù)
這片文章介紹了一個(gè)Java批量添加數(shù)據(jù),多個(gè)字段同時(shí)添加多條數(shù)據(jù)具體實(shí)例,面向的是Oracle數(shù)據(jù)庫(kù),需要的朋友可以參考下2015-07-07springboot發(fā)送request請(qǐng)求的方式小結(jié)
在Java中,發(fā)送HTTP請(qǐng)求是常見需求,hutool工具包和RestTemplate類是實(shí)現(xiàn)此功能的兩種主流方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-09-09Springboot項(xiàng)目如何使用apollo配置中心
這篇文章主要介紹了Springboot項(xiàng)目如何使用apollo配置中心,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11