当前位置: 首页 > news >正文

Spring 3.2.0 版本的一个 ClassMetadataReadingVisitor 错误

今天把自己的一个项目,从 Spring 3.0.6 升级到 3.2.0 ,Maven中更新依赖包后,直接报下面错误:

?
java.lang.IncompatibleClassChangeError: class org.springframework.core.type.classreading.ClassMetadataReadingVisitor has interface org.springframework.asm.ClassVisitor as super class
at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.findCandidateComponents(ClassPathScanningCandidateComponentProvider.java: 281 )

  

?
Incompatible 英文是矛盾的意思,也就是有冲突,再看后面的错误:ClassMetadataReadingVisitor has interface ClassVisitor,也就是说 ClassMetadataReadingVisitor 实现了 ClassVisitor 接口,但是貌似这里出现了问题,于是我看Spring中 2 个版本的源码,发现了变化。在 Spring 3.0 . 6 中:
?
class ClassMetadataReadingVisitor implements ClassVisitor, ClassMetadata {
...
?
?
在 Spring 3.2 . 0 中:
?
class ClassMetadataReadingVisitor extends ClassVisitor implements ClassMetadata {
...

大家都看到问题在哪了吧,3.0.6中,ClassVisitor 是一个接口(interface ClassVisitor),而在3.2.0中,ClassVisitor变成了抽象类(abstract class ClassVisitor)。

为了解决这一问题,最好的办法就是版本一致,也就是所有spring的包,最好是同一个版本,或同一阶段的版本。




本文转自远哥博客园博客,原文链接http://www.cnblogs.com/taven/archive/2013/04/02/2994998.html,如需转载请自行联系原作者

相关文章:

  • Fedora 9 安装vmware tools无kernel-devel的问题
  • ip的划分,超详细
  • linux 如何查看服务和端口
  • phpmailer发送excell
  • struts2.0的json操作
  • 用C++封装了一个简单的“按钮”类
  • 3dMAX如何发送网络渲染
  • 怎么给Guest 账户设置密码
  • 【开源】北大团队大规模稀疏数据机器学习库xLearn,c++ trending 已超TensorFlow
  • iphone 如何查看代码的总行数
  • windows server之AD(1)
  • 游客须知
  • fpm打包zabbix-agent
  • 让虚拟机支持USB HDD 启动
  • Unity导航 (寻路系统Nav Mesh Agent)
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • conda常用的命令
  • echarts的各种常用效果展示
  • ES6 学习笔记(一)let,const和解构赋值
  • java取消线程实例
  • java中具有继承关系的类及其对象初始化顺序
  • VuePress 静态网站生成
  • vue自定义指令实现v-tap插件
  • 基于axios的vue插件,让http请求更简单
  • 类orAPI - 收藏集 - 掘金
  • 如何优雅地使用 Sublime Text
  • 使用Swoole加速Laravel(正式环境中)
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 推荐一个React的管理后台框架
  • Prometheus VS InfluxDB
  • RDS-Mysql 物理备份恢复到本地数据库上
  • # Apache SeaTunnel 究竟是什么?
  • # centos7下FFmpeg环境部署记录
  • #AngularJS#$sce.trustAsResourceUrl
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • ${ }的特别功能
  • (1)(1.11) SiK Radio v2(一)
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (poj1.2.1)1970(筛选法模拟)
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • (译)2019年前端性能优化清单 — 下篇
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .bat批处理(六):替换字符串中匹配的子串
  • .htaccess配置常用技巧
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .net core MVC 通过 Filters 过滤器拦截请求及响应内容
  • .net framework 4.0中如何 输出 form 的name属性。
  • .NET Reactor简单使用教程
  • .net 开发怎么实现前后端分离_前后端分离:分离式开发和一体式发布
  • .NET/C# 使用 SpanT 为字符串处理提升性能
  • .Net6支持的操作系统版本(.net8已来,你还在用.netframework4.5吗)
  • .NET简谈互操作(五:基础知识之Dynamic平台调用)