java:程序包javax.servlet.http不存在問(wèn)題解決
問(wèn)題描述
當(dāng)項(xiàng)目從2.7.x的springboot升級(jí)到3.0.x的時(shí)候,遇到一個(gè)問(wèn)題“java: 程序包javax.servlet.http不存在” 。這可能是一些包的精簡(jiǎn)變化導(dǎo)致的。錯(cuò)誤信息如下:
錯(cuò)誤代碼段
package com.softdev.system.generator.config; import com.softdev.system.generator.entity.ReturnT; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody; import javax.servlet.http.HttpServletRequest; /** * @author zhengkai.blog.csdn.net */ @ControllerAdvice public class GlobalDefaultExceptionHandler { @ExceptionHandler(Exception.class) @ResponseBody public ReturnT defaultExceptionHandler(HttpServletRequest req, Exception e) { e.printStackTrace(); return ReturnT.error("代碼生成失敗:"+e.getMessage()); } }
解決方案
Maven Repository: jakarta.servlet » jakarta.servlet-api » 6.0.0 (mvnrepository.com)
增加一下依賴(lài)即可。
<dependency> <groupId>jakarta.servlet</groupId> <artifactId>jakarta.servlet-api</artifactId> <version>6.0.0</version> <scope>provided</scope> </dependency>
修改后代碼如下(請(qǐng)注意引用部分)
package com.softdev.system.generator.config; import com.softdev.system.generator.entity.ReturnT; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody; import jakarta.servlet.http.HttpServletRequest; /** * @author zhengkai.blog.csdn.net */ @ControllerAdvice public class GlobalDefaultExceptionHandler { @ExceptionHandler(Exception.class) @ResponseBody public ReturnT defaultExceptionHandler(HttpServletRequest req, Exception e) { e.printStackTrace(); return ReturnT.error("代碼生成失敗:"+e.getMessage()); } }
附錄
其實(shí)很多教程仍然指向舊版的
Java Servlet is the foundation web specification in the Java Enterprise Platform. Developers can build web applications using the Servlet API to interact with the request/response workflow.
Maven Repository: javax.servlet » javax.servlet-api (mvnrepository.com)
但是新版的話已經(jīng)叫Jakarta Servlet,來(lái)自Eclipse基金會(huì),
Maven Repository: jakarta.servlet » jakarta.servlet-api » 6.0.0 (mvnrepository.com)
據(jù)說(shuō),racle在19年把javax捐給eclipse基金會(huì),但不允許使用javax的命名空間,所以eclipse才繼續(xù)發(fā)展成現(xiàn)在的javaee標(biāo)準(zhǔn)Jakarta,Jakarta 8與javaee 8只是換了個(gè)命名空間,jakarta9才是新的發(fā)展,spring6與spring boot3會(huì)采用Jakarta作為新的命名空間。
總結(jié)
到此這篇關(guān)于java:程序包javax.servlet.http不存在問(wèn)題解決的文章就介紹到這了,更多相關(guān)java:程序包javax.servlet.http不存在內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringCloud+MyBatis分頁(yè)處理(前后端分離)
這篇文章主要為大家詳細(xì)介紹了SpringCloud+MyBatis分頁(yè)處理,前后端分離,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-10-10vue+springboot+shiro+jwt實(shí)現(xiàn)登錄功能
這篇文章主要介紹了vue+springboot+shiro+jwt實(shí)現(xiàn)登錄功能,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04SpringBoot2.x配置HTTPS訪問(wèn)的過(guò)程
這篇文章主要介紹了SpringBoot2.x配置HTTPS訪問(wèn)的過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07Servlet實(shí)現(xiàn)共享數(shù)據(jù)JavaWeb組件的幾種方法
本文將結(jié)合實(shí)例代碼,介紹Servlet實(shí)現(xiàn)共享數(shù)據(jù)JavaWeb組件的幾種方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07Java使用雪花算法生成唯一ID的實(shí)現(xiàn)示例
雪花算法是 Twitter 開(kāi)源的一種分布式ID生成算法,其目的是生成全局唯一的 ID,本文主要介紹了Java使用雪花算法生成唯一ID的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下2024-07-07Struts2學(xué)習(xí)筆記(1)-入門(mén)教程
本文是一個(gè)Struts2的簡(jiǎn)單入門(mén)教程,比較簡(jiǎn)單,希望能給大家做一個(gè)參考。2016-06-06SpringBoot實(shí)現(xiàn)JWT token自動(dòng)續(xù)期的示例代碼
本文主要介紹了SpringBoot實(shí)現(xiàn)JWT token自動(dòng)續(xù)期的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01