编辑
2024-10-09
遇到的问题
00
请注意,本文编写于 182 天前,最后修改于 182 天前,其中某些信息可能已经过时。

目录

问题
原因
解决
方法一
方法二

问题

定时任务时直接使用WebSocketConfigurer注册端口时的Handler来发送消息后,重启项目出现了一个找不到Bean的异常

org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named 'defaultSockJsTaskScheduler' is expected to be of type 'org.springframework.scheduling.TaskScheduler' but was actually of type 'org.springframework.beans.factory.support.NullBean'

原因

定时任务使用webSocket发送消息,导致webSocket创建线程和定时任务创建线程冲突,从而定时任务创建线程失败,导致程序出错

解决

方法一

手动创建定时任务线程池,避免定时任务创建失败

java
@Configuration public class Config { @Bean public TaskScheduler taskScheduler() { ThreadPoolTaskScheduler scheduling = new ThreadPoolTaskScheduler(); scheduling.setPoolSize(5); scheduling.initialize(); return scheduling; } }

方法二

改用@ServerEndpoint注解和ServerEndpointExporter来创建webSocketServer服务,这个是可以在定时任务中使用的,不会出现问题.

本文作者:Weee

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.14.8