【踩坑记录】Spring+Junit 单元测试 报错Failed to load ApplicationContext

本文记录了在使用Spring3.x版本搭配JDK8及JUnit进行单元测试时遇到的兼容性问题,包括找不到Spring配置文件及log4j日志工厂初始化错误。详细解释了问题原因及解决方案,对于遇到类似问题的开发者具有一定的参考价值。

前言

最近接手了一个新项目,技术用的很老,Spring3.x +jdk1.6。而我本地是jdk8,下载下来后,根据maven的配置,下载了Spring3.X的依赖。这时使用junit测试一直无法运行,报错。后续又出现了各种坑。

内容

问题一 :

使用Spring 3.x 版本+ junit 4.12 + jdk8 这样使用junit单元测试,会报错找不到Spring配置文件。
在这里插入图片描述
原因很简单:就是jdk8 必须要求 Spring 4.x版本的。把Spring版本升级为Spring 4.X即可 完美运行。
![在这里插入图片描述](https://img-blog.csdnimg.cn
/20191105211241309.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0NDA4NTE2,size_16,color_FFFFFF,t_70)

问题二:

java.lang.NoClassDefFoundError: Could not initialize class org.apache.log4j.Log4jLoggerFactory。
这个错很奇怪,使用Tomcat运行是没问题的,但是使用junit方式运行,就会报上述的错误。

原因是:

log4j-over-slf4j.jar 和 slf4j-log4j12.jar 在同一个classpath下就会出现这个错误。

解决方法:

将slf4j-log4j12.jar从相关的jar中排除即可运行

总结

对于这类型的问题,报错的提示信息显然不匹配。比如jdk版本问题,居然报错说找不到配置文件,我一直以为配置文件路径写错了,害的我找同事对了半天没发现问题。所以对于此类的问题,还是有必要记录下来,多多积累。
最后关于第二个问题,使用tomcat运行不报错,而使用junit会报错,我还是不知道为什么,知道的大牛可以告诉我哦!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值