當前項目是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