Spring Boot升级启动报错:Repositories方法不存在问题求助
问题根源分析
报错里的方法_jr$ip$domainTypeMapping带_jr$前缀,这是JRebel(热部署工具)在运行时动态生成的字节码增强方法,并非Spring Data Commons原生代码中的方法。
之所以出现同一Jar内方法找不到的错误,是因为JRebel旧版本不兼容Spring Boot 3.x(Spring 6)和Java 17,在对Repositories类做字节码增强时出现异常,导致类加载后结构错乱,原生代码调用了不存在的增强方法。
解决方案
- 检查并升级JRebel:确保使用支持Spring Boot 3.x、Spring 6和Java 17的JRebel版本(至少为JRebel 2023.1及以上)。
- 临时禁用JRebel验证:关闭IDE中的JRebel插件,或移除项目中JRebel相关依赖、配置文件(如
rebel.xml),重新构建启动应用,确认是否恢复正常。 - 清理全量缓存:
- 执行
mvn clean install -U彻底清理构建产物并重新拉取依赖 - 清理IDE缓存(比如IntelliJ IDEA中执行
File -> Invalidate Caches / Restart)
- 执行
- 排查其他字节码增强工具:如果项目使用了其他热部署、AOP增强工具,检查其版本是否兼容Spring Boot 3.x,必要时升级或临时禁用。
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

