记录:java.lang.NoClassDefFoundError: org/apache/ibatis/annotations/Mapper...【解决方案】

简介: 记录:java.lang.NoClassDefFoundError: org/apache/ibatis/annotations/Mapper...【解决方案】

一、前言🔥


👨‍🎓作者:bug菌

✏️博客:CSDN掘金

💌公众号:猿圈奇妙屋

🚫特别声明:原创不易,转载请附上原文出处链接和本文声明,谢谢配合。

🙏版权声明:文章里可能部分文字或者图片来源于互联网或者百度百科,如有侵权请联系bug菌处理。

      哈喽,小伙伴们,我是bug菌呀👀,不知不觉就一年又4月,正是踏青郊游的好时节。可上海疫情,除了在家远程办公就是看点技术顺便卷点文章。这不是4月又出了更文活动,逼自己一把,坚持每天做点内容输出,养成写作习惯,将来你会回来感谢曾经的自己坚持了一把才有此刻的辉煌成就。

        小伙伴们在批阅文章的过程中如果觉得文章对您有一丝丝帮助,还请别吝啬您手里的赞呀,大胆的把文章点亮👍吧,您的点赞三连(收藏⭐️+关注👨‍🎓+留言📃)就是对bug菌我创作道路上最好的鼓励与支持😘。时光不弃🏃🏻‍♀️,掘金不停💕,加油☘️


二、版本说明🔥


环境:spring3.0 + mybatis 3.3 + spring-mybatis-1.3.0 + jsp


三、事故发生缘由🔥


      事情的经过很奇妙,我之前不是在带着技术组赶项目嘛,然后不知道老大在哪里接手了一个老旧项目,说当时开发结束了一直扔着就没有下文,现在要求我把这个项目给成功运行,且部署到服务器。我看到这条消息,我心想,几年前的项目,要还是使用的是不分离且页面使用jsp写的我就真奔溃了。


     老大接着发给了我项目,我打开一看目录结构,我深深陷入了沉思。果然被我猜对了,还真是spring + mybatis + jsp。传统的ssm框架写的。


      我先是将sql源文件导入进数据库,还好,mysql用的是5.6版本下的,顺利执行成功。看到这不规范的表结构设计,我有点堪忧!这还是能项目吗?写的这么这么不规范。


      我看了下pom依赖配置,导入的是真的多,项目依赖陆续下载完成后,我运行application启动类。不用想,必报错。


      还真是,那只能怎么办?耽误点时间看看报啥错呗,然后解决,总要先把项目运行不报错先,至于要迭代还是咋就不关我的事了。


四、排错分析🔥


控制台关键是爆了这么一段错:


java.lang.NoClassDefFoundError: org/apache/ibatis/annotations/Mapper...


      看到这段错,我回忆回忆,好像还真没有遇到过,那我得瞅瞅,代码中是否有报错的地方,没有,那我只能科学上网,查看下是否有相关解决方案,试了前三个解决方案,说是将@Mapper注解改成@MapperScan,就能解决,没有用。


      最后,原来问题出在这里。这项目中用的spring 3.0 + spring-mybatis-1.3.0 + mybtis 3.3。好家伙,用的还是这种组合版本,版本之间冲突而已。


      所以解决办法就是找一组兼容版本替换当前两jar依赖版本即可。

控制台错误:打印截图:


网络异常,图片无法展示
|


五、解决方案🔥


更新使用的mybatis的版本为3.4.0版本以上即可!如下:


<dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.6</version>
            <scope>compile</scope>
        </dependency>


      升级 mybatis版本后,我们再来重启项目,ok!大功告成。


      想说句题外话,项目我是成功运行起来了,但是不敢保证里头的业务逻辑是否不会报错,这我也不知道,要是遇到逻辑报错,那更是头秃,我给老大回报完,我成功运行,也能正常登陆系统,结果来一句,带几个伙伴,把这个项目熟悉一下,熟悉一下?不是吧!我是真心不想看啊,写成这样。给你们举个例子啊,Controller是逻辑从头写到尾,基本不封装接口层与实现层,一个Controller接口几百行代码。艾玛...


      家人们,如果是你们被安排,你们会接手并进行代码熟悉吗?

... ...

      ok,以上这样就好啦,如果还想学习更多,你可以看看我的往期热文推荐哦,每天积累一个奇淫小知识,日积月累下去,你一定能成为令人敬仰的大佬的。好啦,咱们下期见~


六、往期推荐🔥



七、文末🔥


      如果还想要学习更多,小伙伴们可关注bug菌专门为大家创建的专栏《SpringBoot零基础入门》,从无到有,从零到一!希望能帮到大家。

      我是bug菌,一名想走👣出大山改变命运的程序猿。接下来的路还很长,都等待着我们去突破、去挑战。来吧,小伙伴们,我们一起加油!未来皆可期,fighting!

目录
相关文章
|
5月前
|
关系型数据库 MySQL Java
【IDEA】java后台操作mysql数据库驱动常见错误解决方案
【IDEA】java后台操作mysql数据库驱动常见错误解决方案
182 0
|
11天前
|
存储 SQL 数据挖掘
数据无界、湖仓无界, Apache Doris 湖仓一体解决方案全面解读(上篇)
湖仓一体架构融合了数据湖的低成本、高扩展性,以及数据仓库的高性能、强数据治理能力,高效应对大数据时代的挑战。为助力企业实现湖仓一体的建设,Apache Doris 提出了数据无界和湖仓无界核心理念,并结合自身特性,助力企业加速从 0 到 1 构建湖仓体系,降低转型过程中的风险和成本。本文将对湖仓一体演进及 Apache Doris 湖仓一体方案进行介绍。
数据无界、湖仓无界, Apache Doris 湖仓一体解决方案全面解读(上篇)
|
20天前
|
网络协议 Java Shell
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
55 7
|
19天前
|
缓存 Java 应用服务中间件
java语言后台管理若依框架-登录提示404-接口异常-系统接口404异常如何处理-登录验证码不显示prod-api/captchaImage 404 (Not Found) 如何处理-解决方案优雅草卓伊凡
java语言后台管理若依框架-登录提示404-接口异常-系统接口404异常如何处理-登录验证码不显示prod-api/captchaImage 404 (Not Found) 如何处理-解决方案优雅草卓伊凡
66 5
|
2月前
|
SQL Java 数据库连接
【潜意识Java】深入理解MyBatis的Mapper层,以及让数据访问更高效的详细分析
深入理解MyBatis的Mapper层,以及让数据访问更高效的详细分析
91 1
|
3月前
|
Java Maven
Maven编译报错:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.13.0:compile 解决方案
在执行Maven项目中的`install`命令时,遇到编译插件版本不匹配的错误。具体报错为:`maven-compiler-plugin:3.13.0`要求Maven版本至少为3.6.3。解决方案是将Maven版本升级到3.6.3或降低插件版本。本文详细介绍了如何下载、解压并配置Maven 3.6.3,包括环境变量设置和IDEA中的Maven配置,确保项目顺利编译。
3144 4
Maven编译报错:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.13.0:compile 解决方案
|
3月前
|
JSON 前端开发 Java
【Bug合集】——Java大小写引起传参失败,获取值为null的解决方案
类中成员变量命名问题引起传送json字符串,但是变量为null的情况做出解释,@Data注解(Spring自动生成的get和set方法)和@JsonProperty
|
2月前
|
JSON 前端开发 安全
【潜意识java】前后端跨域问题及解决方案
本文深入探讨了跨域问题及其解决方案。跨域是指浏览器出于安全考虑,限制从一个域加载的网页请求另一个域的资源。
89 0
|
4月前
|
设计模式 Java 开发者
Java多线程编程的陷阱与解决方案####
本文深入探讨了Java多线程编程中常见的问题及其解决策略。通过分析竞态条件、死锁、活锁等典型场景,并结合代码示例和实用技巧,帮助开发者有效避免这些陷阱,提升并发程序的稳定性和性能。 ####
|
3月前
|
Java 编译器 数据库
Java 中的注解(Annotations):代码中的 “元数据” 魔法
Java注解是代码中的“元数据”标签,不直接参与业务逻辑,但在编译或运行时提供重要信息。本文介绍了注解的基础语法、内置注解的应用场景,以及如何自定义注解和结合AOP技术实现方法执行日志记录,展示了注解在提升代码质量、简化开发流程和增强程序功能方面的强大作用。
163 5

热门文章

最新文章

推荐镜像

更多