failed: Error during WebSocket handshake: Unexpected response code: 200
websocket连接的时候往往遇到这种问题,把以前项目和现在websocket之间做了一个比较,发现多了一个拦截功能,所以大致找出原因就在拦截器上面,看这个websocket的请求地址有没有被拦截器拦截而导致访问不了。
Error creating bean with name 'serverEndpointExporter' defined in class path
出现这个错的原因是在部署项目的时候,项目中含有websocket的@ServerEndpoint注解的时候,如果项目是springboot项目,去除内置tomcat的时候会把websocket的包也给删除掉,所以需要手动加上.加上这个包,然后再打war包,部署到linux的tomcat下就没问题了.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.tomcat.embed/tomcat-embed-websocket -->
<!--websocket依赖包-->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-websocket</artifactId>
<version>8.5.23</version>
</dependency>
如果打包就报错的话,把pom里的test依赖删掉,把测试类也删掉
Multiple Endpoints may not be deployed to the same path [/msg]
在启动类中注释掉
// @Bean
// public ServerEndpointExporter getServerEndpointExporter() {
// return new ServerEndpointExporter();
// }
这样就ok 了,由于tomcat中不需要
|