在运行SpringBoot单元测试时,出现以下报错
Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'serverEndpointExporter' defined in class path resource [XXX/XXX/WebSocketConfig.class]: Invocation of init method failed;
nested exception is java.lang.IllegalStateException: javax.websocket.server.ServerContainer not available
导致启动单元测试失败,遇到这类错误,要从末尾往前看,往往末尾的一个报错是根本原因。
这里可以看到是因为javax.websocket.server.ServerContainer不可用,抛出了一个IllegalStateException。
很明显它是一个websocket包下的类,那么应该就和websocket拖不了干系。
通过查阅资料得知,这是因为在启动单元测试时,SpringBootTest不会启动服务器,WebSocket自然也就没有启动,但是在代码里又配置了WebSocket,就会出错。