一、springboot配置websocket后打war包出错
当前项目是springboot项目,配置了websocket后打war包过程中出现此类错误,出现这个问题的原因是因为
出现这个错的原因是在部署项目的时候,项目中含有websocket的@ServerEndpoint注解的时候,如果项目是springboot项目, 去除内置tomcat的时候会把websocket的包也给删除掉,所以需要手动加上websocket的包,然后再打war包
解决办法
<!--去除内嵌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依赖删掉,然后把 测试类文件 删除
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
二、war包放在tomcat下运行出错
打成war包后放在tomcat下运行。tomcat日志文件报错 java.lang.IllegalStateException: Failed to register @ServerEndpoint class
//@Configuration //public class WebSocketConfig { // // @Bean // public ServerEndpointExporter serverEndpointExporter() { // return new ServerEndpointExporter(); // } // //}
如果打包无需进行此步配置,否则会产生java.lang.IllegalStateException:无法注册@ServerEndpoint类的错误,把 WebSocketConfig.java 注释后重新打包