SSM框架搭建后台项目,为了便于接口开发测试,笔者在项目中使用了Junit测试用例来测试接口,在测试运行后,出现如下错误:

java.lang.IllegalStateException: Failed to load ApplicationContextat org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:230)at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228)at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:287)at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:289)at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247)at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)at org.junit.runners.ParentRunner.run(ParentRunner.java:363)at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:539)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:761)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:461)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:207)
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'documentationPluginsBootstrapper' defined in URL [jar:file:/Users/mapboo/Documents/apache-maven-3.6.0/repository/io/springfox/springfox-spring-web/2.7.0/springfox-spring-web-2.7.0.jar!/springfox/documentation/spring/web/plugins/DocumentationPluginsBootstrapper.class]: Unsatisfied dependency expressed through constructor parameter 6; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'javax.servlet.ServletContext' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:749)at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:189)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1201)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1103)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:312)at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:308)at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761)at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867)at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543)at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:128)at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:60)at org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.delegateLoading(AbstractDelegatingSmartContextLoader.java:106)at org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.loadContext(AbstractDelegatingSmartContextLoader.java:249)at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)... 25 more
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'javax.servlet.ServletContext' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1493)at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1104)at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066)at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:835)at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:741)... 43 more

测试用例代码如下:

package com.qunhong.testapi;import java.util.List;import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import com.qunhong.model.User;
import com.qunhong.service.IUserService;@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:applicationContext.xml"})public class TestApi {@Autowiredprivate IUserService userService;@Testpublic void testUserListApi() {List<User> users = userService.getUserList();System.out.println("结果:" + users.size());}}

或许大家在各类博客或资料中看过类似的,具体代码含义这里就不解释了,如上代码,看起来应该没有问题吧,但是一直报错,就是如下图:

仔细查看错误如下:

Caused by: No qualifying bean of type 'javax.servlet.ServletContext'

解决办法:

给测试类添加注解 @WebAppConfiguration 或 @WebAppConfiguration("src/main/resources") ,此注解在类上,用来声明加载的ApplicationContex 是一个WebApplicationContext ,它的属性指定的是Web资源的位置,默认为 src/main/webapp, 自定义修改为 resource,代码如下:

@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
//或者
//@WebAppConfiguration("src/main/resources") @ContextConfiguration(locations = {"classpath:applicationContext.xml"})

再次运行:

测试结果:

至此,完美解决了测试用例出现的问题。

SSM 之 java.lang.IllegalStateException: Failed to load ApplicationContext 错误解决方案相关推荐

  1. java.lang.IllegalStateException: Failed to load ApplicationContext,这个异常的解决方案

    java.lang.IllegalStateException: Failed to load ApplicationContext,这个异常的解决方案 参考文章: (1)java.lang.Ille ...

  2. Spring Data ElasticSearch删除索引遇到的java.lang.IllegalStateException: Failed to load ApplicationContext异常

    异常内容如下: log4j:WARN No appenders could be found for logger (org.springframework.test.context.junit4.S ...

  3. java.lang.IllegalStateException: Failed to load ApplicationContext selenium 异常 解决

    java.lang.IllegalStateException: Failed to load ApplicationContext selenium 异常 解决 参考文章: (1)java.lang ...

  4. JUnit测试类报错:java.lang.IllegalStateException: Failed to load ApplicationContext

    问题描述 运行JUnit测试类时,报以下错误信息: java.lang.IllegalStateException: Failed to load ApplicationContextat org.s ...

  5. spring 配置文件无法加载,junit找不到xml配置文件java.lang.IllegalStateException: Failed to load ApplicationContext...

    最近遇到一个奇怪的问题.maven项目再进行junit单元测试的时候发现无法加载配置文件.一会能加载一会又不能加载.然后试了在src/main/resource下面的配置文件放到src/test/re ...

  6. java.lang.IllegalStateException: Failed to load ApplicationContext 解决办法

    如果自己百度都试过但也许可能是这个原因: 图一: 自己所创建的包不在com.example.login包中(图二),也就是一开始自己所创建的项目文件夹的,将其文件夹或者该文件包剪切到com.examp ...

  7. 解决:java.lang.IllegalStateException: Failed to load property source from ‘file:~application.yml

    1.首先:检查yml文件的格式 yml的格式很严格,:后面要加空格 我少了两处空格 jdbc后面多加了一处空格,所以导致这个问题 2.还可能是文件编码的问题,有将汉语编译成乱码 GBK可以换成UTF- ...

  8. Caused by: java.lang.IllegalStateException: Failed to introspect Class

    Spring-Data-ElasticSearch整合spring boot问题 Caused by: java.lang.IllegalStateException: Failed to intro ...

  9. Spring Boot单元测试报错java.lang.IllegalStateException: Could not load TestContextBootstrapper [null]

    一:运行test类方法时候报错 报错 java.lang.IllegalStateException: Could not load TestContextBootstrapper [null]. S ...

最新文章

  1. VTK:Utilities之ShallowCopy
  2. 17.QT-事件处理分析、事件过滤器、拖放事件
  3. jquery 数组添加不重复数据
  4. Java 8的默认方法:可以做什么和不能做什么?
  5. php: +1天, +3个月, strtotime(): +1 day, +3 month
  6. 大型网站的系统架构(摘)
  7. MFC学习--文本框
  8. 计算机管理的显卡驱动,显卡驱动,教您显卡驱动怎么安装
  9. 2021年秋招面试真题以及面试技巧分享
  10. 第二阶段--团队冲刺--第六天
  11. python selenium爬取kuku漫画
  12. JPA 关联表添加关联条件@Where、@WhereJoinTable()
  13. 景安服务器密码修改,[景安网络]提示页
  14. pdo mysql 安装 zval_macos下编译安装php5.2.17步骤
  15. 程序员怎么在短时间内从菜鸟到高级架构师
  16. python调用spss算法_python – SPSS中的matplotlib图
  17. Route [register] not defined. 的解决办法
  18. failed to read artifact descriptor for *** 问题解决心得
  19. php gearman 定时任务,php使用gearman进行任务分发操作实例详解
  20. 清洁机器人之屏幕(中,大LCD)方案--ITE 联阳986x系列 soc显控芯片介绍

热门文章

  1. 在windows,如何实现fork 函数
  2. 国内外IT学习网站和工具
  3. 1024分辨率《变形金刚3》BD中英双字 高清 1080P 9G   720P 6G 下载
  4. 高压滑环与低压滑环的技术区别有哪些
  5. 如何用计算机输入数学符号,有什么好用的能输入数学符号的编辑器推荐?
  6. 甘肃计算机二级打印准考证入口,2016年9月甘肃计算机二级打印准考证网站入口,计算机等级考试时间查询...
  7. 数字人民币试点新场景多点开花,多品种“硬件钱包”触达平常百姓家
  8. 准备弄一个Bambook来看书
  9. 西门子PLC200smart (一)
  10. 自动发送微信消息或QQ消息的自用代码