java.lang.IllegalStateException: javax.websocket.server.ServerContainer not available

发布时间 2023-09-28 10:54:53作者: 妄,

spring项目能正常运行,但是单元测试报错

错误原因

注册WebSocket的Bean与spring boot内带tomcat冲突

解决办法

1.注释该类里面的代码(不推荐)

2.@springBootTest注解添加webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT


@SpringBootTest注解中,给出了webEnvironment参数指定了web的environment,该参数的值一共有四个可选值:

MOCK:此值为默认值,该类型提供一个mock环境,可以和@AutoConfigureMockMvc或@AutoConfigureWebTestClient搭配使用,开启Mock相关的功能。注意此时内嵌的服务(servlet容器)并没有真正启动,也不会监听web服务端口。
RANDOM_PORT:启动一个真实的web服务,监听一个随机端口。
DEFINED_PORT:启动一个真实的web服务,监听一个定义好的端口(从application.properties读取)。
NONE:启动一个非web的ApplicationContext,既不提供mock环境,也不提供真实的web服务。