首先贴上类似的错误信息:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userService': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userMapper' defined in file [F:\github\repository\springMVC\springMVC\WebRoot\WEB-INF\classes\com\bo\springmvc\mapper\UserMapper.class]: Cannot resolve reference to bean 'sqlSessionFactory' while setting bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [spring/spring-mybatis.xml]: Cannot resolve reference to bean 'dataSource' while setting bean property 'dataSource'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [spring/spring-mybatis.xml]: Invocation of init method failed; nested exception is java.lang.IncompatibleClassChangeError: Implementing class
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:321)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1214)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:775)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:861)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:541)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
at com.bo.springmvc.service.impl.UserServiceImplTest.setUpBeforeClass(UserServiceImplTest.java:35)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userMapper' defined in file [F:\github\repository\springMVC\springMVC\WebRoot\WEB-INF\classes\com\bo\springmvc\mapper\UserMapper.class]: Cannot resolve reference to bean 'sqlSessionFactory' while setting bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [spring/spring-mybatis.xml]: Cannot resolve reference to bean 'dataSource' while setting bean property 'dataSource'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [spring/spring-mybatis.xml]: Invocation of init method failed; nested exception is java.lang.IncompatibleClassChangeError: Implementing class
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:359)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:108)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1481)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1226)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:522)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:496)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:627)
at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:169)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:318)
... 29 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [spring/spring-mybatis.xml]: Cannot resolve reference to bean 'dataSource' while setting bean property 'dataSource'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [spring/spring-mybatis.xml]: Invocation of init method failed; nested exception is java.lang.IncompatibleClassChangeError: Implementing class
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:359)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:108)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1481)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1226)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:351)
... 44 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [spring/spring-mybatis.xml]: Invocation of init method failed; nested exception is java.lang.IncompatibleClassChangeError: Implementing class
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1578)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:351)
... 54 more
Caused by: java.lang.IncompatibleClassChangeError: Implementing class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:188)
at com.alibaba.druid.util.Utils.loadClass(Utils.java:222)
at com.alibaba.druid.pool.vendor.MySqlValidConnectionChecker.<init>(MySqlValidConnectionChecker.java:47)
at com.alibaba.druid.pool.DruidDataSource.initValidConnectionChecker(DruidDataSource.java:945)
at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:660)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1706)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1645)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574)
... 61 more

最终解决方案:

从网上找了好多类似的问题,都没有解决问题,这个BUG是在Junit单元测试的时候发现的,启动Tomcat项目还能正常运行,特别怪。后来通过错误信息查看JDK源码,数据库连接池的源码,spring包的源码,也没看出什么门道。网上大部分人说是jar包冲突,但是这个项目在我公司环境下没问题,从github更新到家里的笔记本就出问题,显然还是与运行环境有关,于是排查了依赖的jar包,发现没毛病;由于是单元测试,并没有用到tomcat所有排除;剩下很可能就是JDK的问题,根据最后几行的报错信息:

Caused by: java.lang.IncompatibleClassChangeError: Implementing class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:791)

可以隐约感觉到加载数据库驱动现问题,查看了一下JDK的依赖JAR包,发现:

看到这个JDK扩展包里居然又放着一个mysql的驱动当时就醉了!忘了这是从哪里下的JDK了,果断删之!重新运行Junit,完美运行!

问题总结

出现java.lang.IncompatibleClassChangeError: Implementing class错误的几大来源:

1.JDK的Jar包与项目依赖Jar包冲突,例如本案例Mysql驱动冲突。

2.Tomcat问题,参考博客 http://www.cnblogs.com/xiaoming0601/p/6189360.html

3.jar包版本冲突,这个比较明显在web项目lib包下或maven项目pom.xml依赖中查看是否存在多个版本的Jar包

4.不同jar包的类冲突,这个就比较难找,需要一定经验,引入jar包的时候要格外注意,参考jar包冲突常用的解决方法 http://www.cnblogs.com/xiayangy/p/4038347.html

java错误:java.lang.IncompatibleClassChangeError: Implementing class相关推荐

  1. 报java.lang.IncompatibleClassChangeError: Implementing class错误的可以看一下

    java.lang.IncompatibleClassChangeError: Implementing class 报错信息的解决 原因:项目中某个jar包冲突导致 解决: 本地上项目部署的:tom ...

  2. 关于java.lang.IncompatibleClassChangeError: Implementing class错误解决

    由于项目中需要用到Rocket MQ,而公司已经有封装好的组件,所以引入封装好的组件后,发现启动项目报错: java.lang.IncompatibleClassChangeError: Implem ...

  3. nested exception is java.lang.IncompatibleClassChangeError: Implementing class(已解决)

    目录 小兄弟的项目出现以下报错,帮忙给查了查,已解决. 一.开发工具中排查排错解决 二.Tomcat部署后排查排错解决 三.总结发言 小兄弟的项目出现以下报错,帮忙给查了查,已解决. 一.开发工具中排 ...

  4. 解决java.lang.IncompatibleClassChangeError: Implementing class

    开发SSM项目引入shrio框架报了一个奇怪的异常,找了大半天百思不得其解! java.lang.IncompatibleClassChangeError: Implementing classat ...

  5. Caused by: java.lang.IncompatibleClassChangeError: Implementing class

    这个问题 Caused by: java.lang.IncompatibleClassChangeError: Implementing class 很不幸,我今天也碰到了 直接照抄百度上的方案是无法 ...

  6. Flink 异常 - 12.java.lang.IncompatibleClassChangeError: Implementing class X StreamTableEnvironment

    一.引言 Flink Sql 本地测试期间,运行任务报错 java.lang.IncompatibleClassChangeError: Implementing class ,异常栈指定在 Stre ...

  7. java.lang.IncompatibleClassChangeError:Implementing class

    java.lang.IncompatibleClassChangeError:Implementing class 网上查了各种方案,始终不能解决,最后才发现原来是类冲突,两个类名称一样,类路径也一样 ...

  8. matlab java错误,java调用matlab 时出现java.lang.NullPointerException错误

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 这是错误日志 Error occurred during initialization of VM Unable to load ZIP library: ...

  9. 50个常见的 Java 错误(第三部分)

    31."Could Not Create Java Virtual Machine" 当我们尝试调用带有错误参数的Java代码时,通常会产生此Java错误消息(@ghacksnew ...

最新文章

  1. 数据存储之SharedPreferences
  2. 【机器学习基础】关于Scikit-Learn,你不一定知道的10件事
  3. Spark2.x RPC解析
  4. 京东抄袭源码;腾讯回应裁员;新 iPad Pro 十月发布 ​| 极客头条
  5. ai二维码插件_超实用的AI脚本插件合集2.0免费分享,让你的设计快人一步
  6. Linux网络子系统中协议栈的入口处理
  7. audio-音频标签
  8. 【极速下载】gradle各版本快速下载地址大全
  9. 网站被黑客劫持了选择高防CDN
  10. 2021国赛新大陆物联网Ubuntu系统维护(中职)
  11. STM32开发基础知识——OLED开发基础
  12. 高阶人工智能时代的畅想
  13. 社区团购,尽头似乎还很远
  14. 服务器部署_打包前后端代码
  15. matlab nctool使用,感知器和BP网络设计及应用技术总结.doc
  16. 爬去豆瓣IP被封,用IP代理解决
  17. lua与C(一):C调用lua
  18. 汇编语言中sbb是什么意思_汇编语言里 sub是 什么功能?
  19. 对比文本 python学习 工具类代码
  20. 高频丙类谐振功率放大器【Multisim】【高频电子线路】

热门文章

  1. LSM303DLHC
  2. GUI(图形用户界面)之布局管理器
  3. 翻硬币问题的多种求解
  4. 配置 Mac M1 支持运行 linux/amd64 镜像
  5. 【Python】教你如何一步批量加水印
  6. Xamarin.Forms初始
  7. 【已解决】win10 系统 thinkpad X1 carbon windows hello人脸识别不可用
  8. 【leetcode】412.Fizz Buzz (三种方法开阔思路,java实现)
  9. 快递鸟Java 接入
  10. 昨日一来到热海的旅馆