问题描述

运行JUnit测试类时,报以下错误信息:


java.lang.IllegalStateException: Failed to load ApplicationContextat org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:132)at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:123)at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190)at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132)at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:244)at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:227)at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289)at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291)at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:246)at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97)at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)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$3.evaluate(ParentRunner.java:306)at org.junit.runners.ParentRunner.run(ParentRunner.java:413)at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190)at org.junit.runner.JUnitCore.run(JUnitCore.java:137)at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:221)at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'serverEndpointExporter' defined in class path resource [org/jeecg/config/WebSocketConfig.class]: Invocation of init method failed; nested exception is java.lang.IllegalStateException: javax.websocket.server.ServerContainer not availableat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1794)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:594)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516)at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324)at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322)at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:897)at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:879)at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:551)at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:758)at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:750)at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:405)at org.springframework.boot.SpringApplication.run(SpringApplication.java:315)at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:120)at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99)at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)... 25 more
Caused by: java.lang.IllegalStateException: javax.websocket.server.ServerContainer not availableat org.springframework.util.Assert.state(Assert.java:76)at org.springframework.web.socket.server.standard.ServerEndpointExporter.afterPropertiesSet(ServerEndpointExporter.java:107)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1853)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1790)... 41 more

报错原因

WebSocket需要依赖Tomcat等容器启动

解决办法

在SpringBootTest后加上“webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT”,意思是创建Web应用程序上下文。

完整示例参考以下代码:

package org.jeecg;import lombok.extern.slf4j.Slf4j;
import org.jeecg.modules.info.cache.DataCache;
import org.jeecg.modules.info.service.IWrSeasonBService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;/*** @Description: 数据缓存测试类* @author: 大强* @date: 2021年2月3日*/
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@Slf4j
public class DataCacheTest {@AutowiredDataCache dataCahche;@AutowiredIWrSeasonBService iWrSeasonBService;/*** 灌季缓存测试*/@Testpublic void irrSeasonTest() {log.info("========================");log.info("灌季缓存测试");log.info("灌季名称:" + "春灌");String str = dataCahche.getStartEndDateBySeasonNm("春灌");// assertEquals("2021-03-01,2021-04-30", str);String[] arr = str.split(",");if (arr != null && !arr.equals("null")) {log.info("开始日期、结束日期:" + arr[0] + "," + arr[1]);} else {log.info("记录缓存不存在");}log.info("========================");}}

JUnit测试类报错:java.lang.IllegalStateException: Failed to load ApplicationContext相关推荐

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

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

  2. 报错 java.lang.IllegalStateException: Could not load TestContextBootstrapper [null]. Specify @Bootstra

    由于我maven仓库之前已经有了有个5.0.10的test包 导致我的变量 <org.springframework.version>4.2.5.RELEASE</org.sprin ...

  3. 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 ...

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

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

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

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

  6. SSM 之 java.lang.IllegalStateException: Failed to load ApplicationContext 错误解决方案

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

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

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

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

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

  9. 解决:room无论如何怎么修改数据库版本都报错java.lang.IllegalStateException: Room cannot verify the data integrity

    问题描述 这已经是第二次遇到这个bug了,第一次卡了一两天,这次卡了半天. bug: java.lang.IllegalStateException: Room cannot verify the d ...

最新文章

  1. 解决了无法显示验证码的问题
  2. 舵机不会玩?看这篇!
  3. [存档]获取通讯录信息并写到SD卡上
  4. Android 系统性能优化(52)---移动端性能监控方案Hertz
  5. 【jvm】jvm 执行模式设置
  6. 征信报告上那些你不知道的事
  7. dlib android 识别时间,android dlib调用
  8. 深度学习:概述和一孔之见 浅谈深度学习中潜藏的稀疏表达
  9. MathType的使用技巧
  10. 主语补足语和宾语补足语区别
  11. python判断负数_python中的负数
  12. Linux中参数命令有的是一个横杠有的是两个横杠的区别
  13. 超微服务器双路主板系列,超微发布X12DPL系列服务器主板 支持双路10nm Ice Lake至强处理器...
  14. 网络安全策略和网络安全机制
  15. TCP/IP 工作模型
  16. 封装一个自己的golang操作MySQL数据库工具
  17. 多值依赖与部分函数依赖 转
  18. 关系型数据库--关系代数
  19. 中国古代经典(汉英双语对照)
  20. linux xunsou_mysql中文分词全文搜索索引讯搜的安装

热门文章

  1. 详解贝叶斯(一):贝叶斯概率
  2. 数据库复试--关系数据理论(主观题)
  3. 【架构实战】构建企业级软件架构的技术与实践
  4. tensorflow的CPU和GPU的区别
  5. 马斯克真是个狠人,人家不做首富谁做首富呀,国内大佬自愧不如
  6. 从走到跑 王秀娟的坚守
  7. futex同步机制分析之一应用
  8. 苹果手机倒计时不显示
  9. 运用windows自带取色器功能拾取RGB
  10. 遇到产品问题,需要进行产品质量鉴定,六个方法选择一个靠谱的产品质量鉴定机构