一、问题描述
最近公司准备把注册中心换为nacos,手头的项目再一次成为小白鼠。nacos作为注册中心,项目的login模块新引入nacos-discovery依赖启动失败:

版本依赖:
(1)springboot版本2.0.3.RELEASE
(2)spring-boot-starter-websocket版本2.0.3.RELEASE(以下简称为websocket)
(3)spring-cloud-starter-alibaba-nacos-discovery版本2.0.3.RELEASE
二、解决思路
项目一共有两个模块login和security,security正常启动,唯独login启动失败(配置文件中nacos配置属性相同)。再由报错信息关键字"web.socket"和security未引入websocket依赖情况结合猜测,问题出现在login模块的websocket依赖。于是login模块去掉websocket依赖,启动成功。具体问题,经验不足,只能通过debug来排查。
1、security模块获取的TaskScheduler是什么?
根据login模块的报错提示,找到NoOpScheduler类,然后查看方法发现全是抛异常。

既然这样,看下能正常启动的security模块获取的TaskScheduler是什么。

本文介绍了在将注册中心从其他服务切换到Nacos时遇到的问题。项目在引入Nacos-discovery依赖后,login模块启动失败,原因是Spring Boot的websocket依赖导致TaskScheduler获取错误。通过debug发现,由于NoOpScheduler匹配导致问题。解决方案包括使用@Primary注解或关闭NacosWatch。作者还分享了在提issues过程中的小插曲,提醒开发者注意社区和版本兼容性问题。
最低0.47元/天 解锁文章
2974





