Spring3.x 版本和 JDK1.8 不兼容导致 java.lang.IllegalStateException: Failed to load ApplicationContext
由于安装了 JDK1.8 的版本,最近在进行整合 Struts2+Spring+Hibernate 框架的时候,不小心导入了之前下载的 Spring 3.2.0 版本的 jar 包。
结果在运行测试用例的时候,总是显示红条,报出 java.lang.IllegalStateException: Failed to load ApplicationContext 的错误。
异常描述:

1 java.lang.IllegalStateException: Failed to load ApplicationContext
2 at org.springframework.test.context.TestContext.getApplicationContext
3 (TestContext.java:157)
4 at
5 org.springframework.test.context.web.ServletTestExecutionListener.
6 setUpRequestContextIfNecessary(ServletTestExecutionListener.java:103)
7 at
8 org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance
9 (ServletTestExecutionListener.java:73)
10 at org.springframework.test.context.TestContextManager.prepareTestInstance
11 (TestContextManager.java:313)
12 at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest
13 (SpringJUnit4ClassRunner.java:211)
14 at org.springframework.test.context.junit4.SpringJUnit4ClassRunner
15 $1.runReflectiveCall(SpringJUnit4ClassRunner.java:288)
16 at org.junit.internal.runners.model.ReflectiveCallable.run
17 (ReflectiveCallable.java:12)
18 at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock
19 (SpringJUnit4ClassRunner.java:284)
20 at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild
21 (SpringJUnit4ClassRunner.java:231)
22 at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild
23 (SpringJUnit4ClassRunner.java:88)
24 at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
25 at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
26 at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
27 at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
28 at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
29 at
30 org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate
31 (RunBeforeTestClassCallbacks.java:61)
32 at
33 org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate
34 (RunAfterTestClassCallbacks.java:71)
35 at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
36 at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run
37 (SpringJUnit4ClassRunner.java:174)
38 at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run
39 (JUnit4TestReference.java:86)
40 at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
41 at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests
42 (RemoteTestRunner.java:459)
43 at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests
44 (RemoteTestRunner.java:678)
45 at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run
46 (RemoteTestRunner.java:382)
47 at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main
48 (RemoteTestRunner.java:192)
49 Caused by: java.lang.IllegalArgumentException
50 at org.springframework.asm.ClassReader.<init>(Unknown Source)
51 at org.springframework.asm.ClassReader.<init>(Unknown Source)
52 at org.springframework.asm.ClassReader.<init>(Unknown Source)
53 at org.springframework.core.type.classreading.SimpleMetadataReader.<init>
54 (SimpleMetadataReader.java:52)
55 at
56 org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader
57 (SimpleMetadataReaderFactory.java:80)
58 at
59 org.springframework.core.type.classreading.CachingMetadataReaderFactory.getMetadataReader
60 (CachingMetadataReaderFactory.java:101)
61 at
62 org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader
63 (SimpleMetadataReaderFactory.java:76)
64 at
65 org.springframework.context.annotation.ConfigurationClassUtils.
66 checkConfigurationClassCandidate(ConfigurationClassUtils.java:70)
67 at
68 org.springframework.context.annotation.ConfigurationClassPostProcessor.
69 processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:253)
70 at
71 org.springframework.context.annotation.ConfigurationClassPostProcessor.
72 postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:223)
73 at
74 org.springframework.context.support.AbstractApplicationContext.
75 invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:630)
76 at org.springframework.context.support.AbstractApplicationContext.refresh
77 (AbstractApplicationContext.java:461)
78 at
79 org.springframework.test.context.support.AbstractGenericContextLoader.loadContext
80 (AbstractGenericContextLoader.java:106)
81 at
82 org.springframework.test.context.support.AbstractGenericContextLoader.loadContext
83 (AbstractGenericContextLoader.java:57)
84 at
85 org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.
86 delegateLoading(AbstractDelegatingSmartContextLoader.java:100)
87 at
88 org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.loadContext
89 (AbstractDelegatingSmartContextLoader.java:248)
90 at org.springframework.test.context.TestContext.loadApplicationContext
91 (TestContext.java:124)
92 at org.springframework.test.context.TestContext.getApplicationContext
93 (TestContext.java:148)
94 ... 24 more

经查明问题的原因是:安装的 JDK 版本和 Myeclipse 项目 lib 中导入的 Spring 的 jar 包版本存在不兼容的情况。
解决办法:
一:把 JDK 版本换成1.7 or 1.7以下
二:使用 Spring 4.0 RELEASE 及以上版本
关于 JDK 各个版本的下载:
可以点击链接:http://java.sun.com/products/archive/
关于 Spring 各个版本 jar 包的下载:
可以点击链接:http://repo.spring.io
鼠标点击左侧导航栏 –> 符号展开菜单选择 Artifacts 选项 –> 选择子菜单下的 libs-release-local 选项 –> 依次进入其子目录 org/springframework/spring 就可以看到 spring 各版本信息了 –> 选择需要的 spring 版本 ( 例如 4.3.8.RELEASE ,点击打开选择 spring-framework-4.3.8.RELEASE-dist.zip ),下载解压即可获得 jar 包、api 等文件。
Spring3.x 版本和 JDK1.8 不兼容导致 java.lang.IllegalStateException: Failed to load ApplicationContext的更多相关文章
- JDK1.8源码(一)——java.lang.Object类
本系列博客将对JDK1.8版本的相关类从源码层次进行介绍,JDK8的下载地址. 首先介绍JDK中所有类的基类——java.lang.Object. Object 类属于 java.lang 包,此包下 ...
- JDK1.8源码(二)——java.lang.Integer 类
上一篇博客我们介绍了 java.lang 包下的 Object 类,那么本篇博客接着介绍该包下的另一个类 Integer.在前面 浅谈 Integer 类 博客中我们主要介绍了 Integer 类 和 ...
- JDK1.8源码(三)——java.lang.String 类
String 类也是java.lang 包下的一个类,算是日常编码中最常用的一个类了,那么本篇博客就来详细的介绍 String 类. 1.String 类的定义 public final class ...
- JDK1.8源码(二)——java.lang.Integer类
一.初识 1.介绍 int 是Java八大基本数据类型之一,占据 4 个字节,范围是 -2^31~2^31 - 1,即 -2147483648~2147483647.而 Integer 是 int 包 ...
- JDK1.8源码(三)——java.lang.String类
一.概述 1.介绍 String是一个final类,不可被继承,代表不可变的字符序列,是一个类类型的变量.Java程序中的所有字符串字面量(如"abc")都作为此类的实例实现,&q ...
- jdk1.8+SpringAOP注解报java.lang.IllegalArgumentException: error at ::0 can't find referenced pointcut select错误的不知原因的解决办法[仅供参考]
先说办法:如果Aspectweaver-1.*.*jar这三个包版本比较低, 比如1.5.0这一层次的,可以找版本高一点的包替换低版本的包,问题可以得到解决 jar包的下载地址:https://mvn ...
- JDK1.8源码(八)——java.lang.ThreadLocal类
https://www.cnblogs.com/xdd666/p/14734047.html ThreadLocal https://www.cnblogs.com/yanfei1819/p/1473 ...
- springmvc错误集锦-dubbo包含低版本的spring包,依赖的时候应该排除Caused by: java.lang.reflect.MalformedParameterizedTypeException
dubbo 常见错误 1. Caused by: java.lang.reflect.MalformedParameterizedTypeException 启动时报错,原因是dubbo 依赖 spr ...
- 记一次netty版本冲突,报java.lang.NoSuchMethodError: io.netty.util.internal.ObjectUtil.checkPositive的问题
elasticsearch 5.6中使用TransportClient初始化抛异常 在引入elasticsearch5.6的transportclient包中,会引入netty进行通信. <!- ...
随机推荐
- Linux基础命令---arp
arp arp指令用来管理系统的arp缓冲区,可以显示.删除.添加静态mac地址.ARP以各种方式操纵内核的ARP缓存.主要选项是清除地址映射项并手动设置.为了调试目的,ARP程序还允许对ARP缓存进 ...
- idea下导入Tomcat源码
对于web开发者来说,如果明白了tomcat那对于开发还是后面的学习都是有很大益处的,但在网上看了很多的文章,总是没弄好,经历了很久才弄好了,写个文章记录下,希望也能帮助到其他人.下载Tomcat源码 ...
- Qt读取TXT文件时,GBK与UTF-8编码判断
读取txt文件时,很多时候无法获取文件的编码格式.如果直接进行使用,则有可能出现乱码.需要在使用前将其转为Unicode(Qt的默认编码格式). 虽然实际的编码格式种类非常多,但平常主要使用的有GBK ...
- Django框架----命名URL和URL反向解析
在使用Django 项目时,一个常见的需求是获得URL 的最终形式,以用于嵌入到生成的内容中(视图中和显示给用户的URL等)或者用于处理服务器端的导航(重定向等).人们强烈希望不要硬编码这些URL(费 ...
- 深度估计&平面检测小结
https://yq.aliyun.com/ziliao/582885 最近一段时间已知忙着赶图像分析与理解的项目,在三个星期内强行接触了CNN,MRF,Caffe,openCV在内的很多东西.现在项 ...
- 分布式系统下的全局id生成策略分析
对于分布式系统而言,意味着会有很多个instance会并发的生成很多业务数据,比如订单.不同的机房.不同的机器.不同的应用实例会同时生成.所以,如何生成一个好用的全局id并不是一个简单的uuid就能够 ...
- 使用UI管理docker
比较全面的对比 wangzi19870227 比较推荐的有两种(http://dockone.io/article/225): Shipyard 和 dockerui https://docs.doc ...
- 尝试解决cifar10问题
我理解这个问题和猫狗的不同,在于将2类扩展为10类,其它的地方我准备采用相同的方法. 注意事项: 1.我要用kaggle的数据集,而不是用其它的数据集: 2.最终得到的结果要以test为导向: 1.先 ...
- django基础 -- 4. 模板语言 过滤器 模板继承 FBV 和CBV 装饰器 组件
一.语法 两种特殊符号(语法): {{ }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 二.变量 1. 可直接用 {{ 变量名 }} (可调用字符串, 数字 ,列表,字典,对象等) ...
- topcoder srm 415 div1
problem1 link 每次贪心地从crans由大到小地找到一个能搬得动地尽量大地box即可. problem2 link 首先,$hava$可以全部换成钱,然后就是找到一个最小的钱减去自己已有的 ...