我知道关于这个话题有很多问题。我已经阅读了 spring boot doc 和这里的所有解决方案。根据 spring boot doc,@ServerEndpoint是一个 Javax 注释,@Autowired组件由 spring-boot 管理。这两个不能一起使用。对此的解决方案是添加SpringConfigurator为ServerEndpoint. 当我尝试这个时,我确实收到以下错误:
未能找到根 WebApplicationContext。是否未使用 ContextLoaderListener?
spring-boot websocket页面中没有示例可以使用ContextLoaderListener。如何使用ContextLoaderListener才能将组件注入带@ServerEndpoint注释的控制器?
以下是我的代码。
Websocket 控制器
@ServerEndpoint(value = "/call-stream", configurator = SpringConfigurator.class)
public class CallStreamWebSocketController
{
@Autowired
private IntelligentResponseService responseServiceFacade;
// Other methods
}
Websocket 配置
@Configuration
public class WebSocketConfiguration
{
@Bean
public CallStreamWebSocketController callStreamWebSocketController()
{
return new CallStreamWebSocketController();
}
@Bean
public ServerEndpointExporter serverEndpointExporter()
{
return new ServerEndpointExporter();
}
}
编辑:这已被标记为此问题的副本。我已经尝试了答案中指定的解决方案。解决方案是添加SpringConfigurator为@ServerEndpoint. 添加此内容后,我仍然收到详细信息中提到的错误。
动漫人物
相关分类