最近在项目中需要服务端进行推送服务,于是决定使用webSocket进行双向通讯。刚开始觉得应该没问题,参考网上的博客进行开发配置。我们的开发环境使用的是springBoot、tomcat7、servlet2.5。刚开始的参考网上的springBoot的开发方式。参考:https://blog.csdn.net/zhangdehua678/article/details/78913839。springBoot中默认使用的是tomcat8,tomcat7中不支持@ServerEndpoint(value = "/websocket")这种方式。所以放弃,后续又看到spring下websocket的配置开发:https://blog.csdn.net/u014520745/article/details/62046396。开始报错404,未找到路径。
后续查找资料,websocket需要servlet支持的版本是3.0以上,所以需要修改servlet的版本,后续报错:
No suitable default RequestUpgradeStrategy found
这个是因为版本冲突,springBoot默认使用的是tomcat8,而我们的服务器是tomcat7,所以pom文件如下修改:
org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-tomcat
让tomcat使用自己自带的,项目跑起来了。