×
您的位置: 首页 > 编程笔记

Error creating bean with name 'serverEndpointExporter' defined in class path

Java Spring Spring Boot Tomcat WebSocket 时间:2019-07-30  查看:1370   收藏

一、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 注释后重新打包 

 

0% (0)
0% (0)