Spring解決依賴版本不一致報(bào)錯(cuò)問題
問題描述
報(bào)錯(cuò)信息如下
Description: An attempt was made to call a method that does not exist. The attempt was made from the following location: io.undertow.websockets.jsr.Bootstrap.handleDeployment(Bootstrap.java:84) ? The following method did not exist: ? javax.servlet.ServletContext.getClassLoader()Ljava/lang/ClassLoader; ? The method's class, javax.servlet.ServletContext, is available from the following locations: ? jar:file:/E:/.m2/repository/javax/servlet/servlet-api/2.5/servlet-api-2.5.jar!/javax/servlet/ServletContext.class ? jar:file:/E:/.m2/repository/jakarta/servlet/jakarta.servlet-api/4.0.4/jakarta.servlet-api-4.0.4.jar!/javax/servlet/ServletContext.class ? ? The class hierarchy was loaded from the following locations: ? javax.servlet.ServletContext: file:/E:/.m2/repository/javax/servlet/servlet-api/2.5/servlet-api-2.5.jar Action: Correct the classpath of your application so that it contains a single, compatible version of javax.servlet.ServletContext
報(bào)錯(cuò)描述
試圖從以下位置去調(diào)用一個(gè)不存在的方法:
io.undertow.websockets.jsr.Bootstrap.handleDeployment(Bootstrap.java:84); javax.servlet.ServletContext.getClassLoader()Ljava/lang/ClassLoader;
該方法不存在;
該方法的類javax.servlet.ServletContext
可從以下位置獲得:
jar:file:/E:/.m2/repository/javax/servlet/servlet-api/2.5/servlet-api-2.5.jar!/javax/servlet/ServletContext.class ? jar:file:/E:/.m2/repository/jakarta/servlet/jakarta.servlet-api/4.0.4/jakarta.servlet-api-4.0.4.jar!/javax/servlet/ServletContext.class
類層次結(jié)構(gòu)是從以下位置加載的:
javax.servlet.ServletContext: file:/E:/.m2/repository/javax/servlet/servlet-api/2.5/servlet-api-2.5.jar
更正應(yīng)用程序的類路徑,使其包含一個(gè)單獨(dú)的兼容版本的javax.servlet.ServletContext。
上邊的解釋說人話就是servlet-api和jakarta.servlet-api下的 ServletContext.class 沖突了,需要修改一下版本依賴。
解決方法
首先打開IDEA的 setting 設(shè)置
然后選擇 Plugins 插件,下載Maven Helper
插件,如果安裝之后不生效,可以重啟一下 IDEA
最后打開 pom.xml 文件,選擇 Dependency Analyzer
切換頁,選擇 All Dependencies as Tree
選項(xiàng),然后搜索 javax
,然后右鍵選擇 Exclude
排除重復(fù)依賴就可以了。
點(diǎn)完之后會(huì)發(fā)現(xiàn) pom.xml 文件中會(huì)出現(xiàn)如下代碼
<dependency> ? <groupId>com.xxx.kas.swagger</groupId> ? <artifactId>swagger-spring-mvc-core</artifactId> ? <version>1.0-SNAPSHOT</version> ? <exclusions> ? <exclusion> ? <artifactId>servlet-api</artifactId> ? <groupId>javax.servlet</groupId> ? </exclusion> ? </exclusions> ? </dependency>
如果排除之后依然報(bào)錯(cuò),可以選擇上圖的Jump To Source
跳轉(zhuǎn)到對(duì)應(yīng)的倉(cāng)庫內(nèi)將對(duì)應(yīng)版本刪除即可。
刷新下依賴,發(fā)現(xiàn)正常啟動(dòng)了,搞定。
總結(jié)
以后再遇到這種包依賴沖突的問題都可以使用Maven Helper
這個(gè)插件來輕松解決,媽媽再也不用擔(dān)心我的學(xué)習(xí)了。
到此這篇關(guān)于Spring解決依賴版本不一致報(bào)錯(cuò)問題的文章就介紹到這了,更多相關(guān)Spring版本不一致內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java中try-catch的使用及注意細(xì)節(jié)
現(xiàn)在有很多的語言都支持try-catch,比如常見的就是c++,java等,這篇文章主要給大家介紹了關(guān)于Java中try-catch的使用及注意細(xì)節(jié)的相關(guān)資料,文中通過圖文以及實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06Springboot?配置SqlSessionFactory方式
這篇文章主要介紹了Springboot?配置SqlSessionFactory方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12spring?boot項(xiàng)目自定義參數(shù)校驗(yàn)規(guī)則示例詳解
這篇文章主要介紹了spring boot項(xiàng)目如何自定義參數(shù)校驗(yàn)規(guī)則,自定義校驗(yàn)規(guī)則和自帶的規(guī)則實(shí)現(xiàn)方式一樣,先自定義一個(gè)注解,然后指定校驗(yàn)類,在校驗(yàn)類里實(shí)現(xiàn)具體的校驗(yàn)規(guī)則,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07如何使用IDEA查看java文件編譯后的字節(jié)碼內(nèi)容
這篇文章主要介紹了如何使用IDEA查看java文件編譯后的字節(jié)碼內(nèi)容,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03SpringCloud注冊(cè)中心之consul詳細(xì)講解使用方法
Consul是一款由HashiCorp公司開源的,用于服務(wù)治理的軟件,Spring Cloud Consul對(duì)其進(jìn)行了封裝,這篇文章主要介紹了springcloud組件consul服務(wù)治理,需要的朋友可以參考下2022-11-11FP-Growth算法的Java實(shí)現(xiàn)+具體實(shí)現(xiàn)思路+代碼
FP-Growth算法比Apriori算法快很多(但是卻比不上時(shí)間,how time slipped away)。在網(wǎng)上搜索后發(fā)現(xiàn)Java實(shí)現(xiàn)的FP-Growth算法很少,且大多數(shù)不太能理解):太菜。所以就自己實(shí)現(xiàn)了一下。這篇文章重點(diǎn)介紹一下我的Java實(shí)現(xiàn)2021-06-06Redis有效時(shí)間設(shè)置以及時(shí)間過期處理操作
這篇文章主要介紹了Redis有效時(shí)間設(shè)置以及時(shí)間過期處理操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-11-11在Java中實(shí)現(xiàn)讓線程按照自己指定的順序執(zhí)行
這篇文章主要介紹了在Java中實(shí)現(xiàn)讓線程按照自己指定的順序執(zhí)行,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06