pom做如下配置:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1-b07</version>
</dependency>
注释WebSocketConfig.java
/**
* 开启WebSocket支持
* @author zhengkai
*/
/*@Configuration
public class WebSocketConfig {
@Bean
public ServerEndpointExporter serverEndpointExporter() {
return new ServerEndpointExporter();
}
} */
最终问题得解。
当我们使用外部Tomcat时,项目的管理权将会由Spring交接至Tomcat。 而Tomcat7及后续版本是对websocket直接支持的,且我们所使用的jar包也是tomcat提供的。 但是我们在WebSocketConfig中将ServerEndpointExporter指定给Spring管理。而部署后ServerEndpoint是需要Tomcat直接管理才能生效的。所以此时即就是此包的管理权交接失败,那肯定不能成功了。最后我们需要将WebSocketConfig中的bean配置注释掉。然后再打包上传部署测试。一切正常!
参考地址:https://blog.youkuaiyun.com/qq_21144985/article/details/72921104
使用外部Tomcat时,项目管理权从Spring交接至Tomcat。Tomcat7及后续版本支持websocket,使用的jar包由tomcat提供,但将ServerEndpointExporter指定给Spring管理会导致管理权交接失败。解决办法是注释WebSocketConfig中的bean配置,再打包部署测试即可。
5901

被折叠的 条评论
为什么被折叠?



