当前项目是springboot项目,配置了websocket后打war包过程当中出现此类错误,出现这个问题的缘由是由于java
出现这个错的缘由是在部署项目的时候,项目中含有websocket的@ServerEndpoint注解的时候,若是项目是springboot项目, 去除内置tomcat的时候会把websocket的包也给删除掉,因此须要手动加上websocket的包,而后再打war包
解决办法web
<!--去除内嵌tomcat--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> <!--websocket依赖包--> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-websocket</artifactId> <version>8.5.23</version> </dependency>
若是打包还出错的话,就把 pom里的test依赖删掉,而后把 测试类文件 删除spring
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency>
打成war包后放在tomcat下运行。tomcat日志文件报错 java.lang.IllegalStateException: Failed to register @ServerEndpoint classapache
//@Configuration //public class WebSocketConfig { // // @Bean // public ServerEndpointExporter serverEndpointExporter() { // return new ServerEndpointExporter(); // } // //}
若是打包无需进行此步配置,不然会产生java.lang.IllegalStateException:没法注册@ServerEndpoint类的错误,把 WebSocketConfig.java 注释后从新打包 tomcat