JUnit测试类报错:java.lang.IllegalStateException: Failed to load ApplicationContext
问题描述
运行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相关推荐
- Spring Boot单元测试报错java.lang.IllegalStateException: Could not load TestContextBootstrapper [null]
一:运行test类方法时候报错 报错 java.lang.IllegalStateException: Could not load TestContextBootstrapper [null]. S ...
- 报错 java.lang.IllegalStateException: Could not load TestContextBootstrapper [null]. Specify @Bootstra
由于我maven仓库之前已经有了有个5.0.10的test包 导致我的变量 <org.springframework.version>4.2.5.RELEASE</org.sprin ...
- 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 ...
- java.lang.IllegalStateException: Failed to load ApplicationContext,这个异常的解决方案
java.lang.IllegalStateException: Failed to load ApplicationContext,这个异常的解决方案 参考文章: (1)java.lang.Ille ...
- java.lang.IllegalStateException: Failed to load ApplicationContext selenium 异常 解决
java.lang.IllegalStateException: Failed to load ApplicationContext selenium 异常 解决 参考文章: (1)java.lang ...
- SSM 之 java.lang.IllegalStateException: Failed to load ApplicationContext 错误解决方案
SSM框架搭建后台项目,为了便于接口开发测试,笔者在项目中使用了Junit测试用例来测试接口,在测试运行后,出现如下错误: java.lang.IllegalStateException: Faile ...
- spring 配置文件无法加载,junit找不到xml配置文件java.lang.IllegalStateException: Failed to load ApplicationContext...
最近遇到一个奇怪的问题.maven项目再进行junit单元测试的时候发现无法加载配置文件.一会能加载一会又不能加载.然后试了在src/main/resource下面的配置文件放到src/test/re ...
- java.lang.IllegalStateException: Failed to load ApplicationContext 解决办法
如果自己百度都试过但也许可能是这个原因: 图一: 自己所创建的包不在com.example.login包中(图二),也就是一开始自己所创建的项目文件夹的,将其文件夹或者该文件包剪切到com.examp ...
- 解决:room无论如何怎么修改数据库版本都报错java.lang.IllegalStateException: Room cannot verify the data integrity
问题描述 这已经是第二次遇到这个bug了,第一次卡了一两天,这次卡了半天. bug: java.lang.IllegalStateException: Room cannot verify the d ...
最新文章
- 解决了无法显示验证码的问题
- 舵机不会玩?看这篇!
- [存档]获取通讯录信息并写到SD卡上
- Android 系统性能优化(52)---移动端性能监控方案Hertz
- 【jvm】jvm 执行模式设置
- 征信报告上那些你不知道的事
- dlib android 识别时间,android dlib调用
- 深度学习:概述和一孔之见 浅谈深度学习中潜藏的稀疏表达
- MathType的使用技巧
- 主语补足语和宾语补足语区别
- python判断负数_python中的负数
- Linux中参数命令有的是一个横杠有的是两个横杠的区别
- 超微服务器双路主板系列,超微发布X12DPL系列服务器主板 支持双路10nm Ice Lake至强处理器...
- 网络安全策略和网络安全机制
- TCP/IP 工作模型
- 封装一个自己的golang操作MySQL数据库工具
- 多值依赖与部分函数依赖 转
- 关系型数据库--关系代数
- 中国古代经典(汉英双语对照)
- linux xunsou_mysql中文分词全文搜索索引讯搜的安装