SpringBoot结合WebSocket进行开发,打包部署失败问题

前言: 采用SpringBoot进行项目开发,功能模块需要用到WebSocket,引入开发完成并打war包,在部署到tomcat服务器后访问不到。
SpringBoot结合WebSocket进行开发,打包部署失败问题

查看tomckt日志发现报错:

javax.websocket.server.ServerContainer not available

SpringBoot结合WebSocket进行开发,打包部署失败问题

原因: 由于打包后项目不再依赖内置tomcat,导致了在springboot内置tomcat正常的代码到了外置容器就不能运行

解决办法:
(一)注释掉serverEndpointExporter()
SpringBoot结合WebSocket进行开发,打包部署失败问题
(二) 使用@Profile注解(建议)
SpringBoot结合WebSocket进行开发,打包部署失败问题

@Profile注解的参数为字符数组,当项目环境Active profiles为dev或者test时,使用@bean
serverEndpointExporter会正常装配,当Activeprofiles是其他比如prod的时候,serverEndpointExporter会被忽略不进行装配