【SpringBoot】解决依赖版本不一致报错问题 |
您所在的位置:网站首页 › servlet包报错 › 【SpringBoot】解决依赖版本不一致报错问题 |
🐱个人主页:阿Q说代码 🙋♂️作者简介:公众号阿Q说代码作者(期待你的关注)、infoQ签约作者、CSDN后端领域新星创作者 💫技术方向:专注于后端技术栈分享:JVM、数据库、中间件、微服务、Spring全家桶 今天在开发代码的过程中,由于手抖,不知道引入了什么包依赖,导致项目启动一直报错,特写本文来记录下解决问题的经过。 问题描述 报错信息如下 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 报错描述试图从以下位置去调用一个不存在的方法: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类层次结构是从以下位置加载的:javax.servlet.ServletContext: file:/E:/.m2/repository/javax/servlet/servlet-api/2.5/servlet-api-2.5.jar 更正应用程序的类路径,使其包含一个单独的兼容版本的javax.servlet.ServletContext。 上边的解释说人话就是servlet-api和jakarta.servlet-api下的 ServletContext.class 冲突了,需要修改一下版本依赖。 解决方法首先打开IDEA的 setting 设置 然后选择 Plugins 插件,下载Maven Helper插件,如果安装之后不生效,可以重启一下 IDEA 最后打开 pom.xml 文件,选择 Dependency Analyzer 切换页,选择 All Dependencies as Tree 选项,然后搜索 javax,然后右键选择 Exclude 排除重复依赖就可以了。 点完之后会发现 pom.xml 文件中会出现如下代码 com.xxx.kas.swagger swagger-spring-mvc-core 1.0-SNAPSHOT servlet-api javax.servlet如果排除之后依然报错,可以选择上图的Jump To Source跳转到对应的仓库内将对应版本删除即可。 刷新下依赖,发现正常启动了,搞定。 总结以后再遇到这种包依赖冲突的问题都可以使用Maven Helper这个插件来轻松解决,妈妈再也不用担心我的学习了😃。 本文到这里就结束了,看看我为了写这篇文章又日渐稀少的头发,我忍不住哭出声来。可能只有给我点赞,才能平复我的心情吧。 好看的皮囊千篇一律,有趣的灵魂万里挑一,让我们在冷漠的城市里相互温暖,我是阿Q,我们下期再见! 推荐阅读面试官:MySQL连环炮,你扛得住嘛? 实战:画了几张图,终于把OAuth2搞清楚了 重磅出击,20张图带你彻底了解ReentrantLock加锁解锁的原理 看了同事写的代码,我竟然开始默默的模仿了。。。 实战篇:断点续传?文件秒传?手撸大文件上传 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |