一、报错内容
在SpringBoot项目中集成了WebSocket,在进行单元测试的时候,出现了以下错误:
Caused by: java.lang.IllegalStateException: javax.websocket.server.ServerContainer not available
at 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:1847)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1784)
二、报错说明
代码中使用了POM文件spring-boot-starter-websocket,用于统计实时人数
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
<version>1.5.10.RELEASE</version>
</dependency>
单元测试类的原注解是这样的:
@RunWith(SpringRunner.class)
@SpringBootTest
经查阅资料,得知SpringBootTest在启动的时候不会启动服务器,所以WebSocket自然会报错文章来源:https://www.toymoban.com/news/detail-764225.html
三、报错解决
这个时候需要添加选项webEnvironment,以便提供一个测试的web环境。
如下:文章来源地址https://www.toymoban.com/news/detail-764225.html
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class FeishuUtilTest {
@Autowired
private FeiShuService feiShuService;
@Autowired
private UserMapper userMapper;
到了这里,关于【异常】IDEA中执行单元测试后提示IllegalStateException: javax.websocket.server.ServerContainer not available的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!