前言
最近接手了一个新项目,技术用的很老,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即可 完美运行。

问题二:
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会报错,我还是不知道为什么,知道的大牛可以告诉我哦!
本文记录了在使用Spring3.x版本搭配JDK8及JUnit进行单元测试时遇到的兼容性问题,包括找不到Spring配置文件及log4j日志工厂初始化错误。详细解释了问题原因及解决方案,对于遇到类似问题的开发者具有一定的参考价值。

被折叠的 条评论
为什么被折叠?



