今天把自己的一个项目,从 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 {
...
|
class ClassMetadataReadingVisitor extends ClassVisitor implements ClassMetadata {
...
|
大家都看到问题在哪了吧,3.0.6中,ClassVisitor 是一个接口(interface ClassVisitor),而在3.2.0中,ClassVisitor变成了抽象类(abstract class ClassVisitor)。
为了解决这一问题,最好的办法就是版本一致,也就是所有spring的包,最好是同一个版本,或同一阶段的版本。
分享到:
相关推荐
Spring 3.2.0 jar包 从官网下载的,包含docs、libs以及schema,希望能帮助到小伙伴们
spring3.2.0源码spring3.2.0源码spring3.2.0源码spring3.2.0源码spring3.2.0源码spring3.2.0源码spring3.2.0源码
spring3.2.0jar包资源下载!
spring3.2.0 api 根据官方javadocs制作的最新API chm格式的
Spring 3.2.0 API文档 自己编译的,纯洁完全。。
spring所需要的jar包
spring的源码包,里面有doc,所需要的jar包,源码等等...
spring3.2.0的包
spring-core-3.2.0.RELEASE-sources.jar (spring 3.2.0源码source),加载在Eclipse里面进行源码查看。
Spring3.2.0的api文档,chm格式,一共2个文件,一个带搜索功能,一个不带搜索 方便查阅和学习
本文是总结了网上的SpringMVC3.2.0+MyBatis3.1.1+Spring3.2.0 整合资源
Spring Framework 3.2.0.M1 API .chm
Spring框架 3.2.0版本的api接口文档,官方英文版的,chm格式。特别说明,这个文档是api文档,不是开发参考文档。网上有很多鱼龙混杂的参考文档都说成api文档。
Spring3.2.0 框架jar包及Spring依赖jar包
spring3.2.0 有源码 有文档 有jar包,此包与mybatis整合 测试通过
最新下载spring 3.2.0最新下载
其中包含了spring3.2.0的相关jar包,还有xml中自动提示的本地xsd文件。
axis2 和 spring3.2.0 的包。 这里http://blog.csdn.net/linlinv3/article/details/9017767详细讲解了 axis2 的用法