The following are the configuration details of my project's websocket:
@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {
@Autowired
private TextMessageHandler handler;
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry
.addHandler(handler, "/ws")
.setAllowedOrigins("*")
.setHandshakeHandler((a, b,c, d) -> true)
.addInterceptors(new HandshakeInterceptor());
}
@Bean
public TextMessageHandler textMessageHandler() {
return new TextMessageHandler();
}
}
When program run after throw exception:
org.springframework.context.ApplicationContextException: Failed to start bean 'subProtocolWebSocketHandler'
at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:181)
at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:170)
at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:356)
at java.base/java.lang.Iterable.forEach(Iterable.java:75)
at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:155)
at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:123)
at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:932)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:587)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:730)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:432)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:308)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1302)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1291)
at com.qihao.parking.client.server.Launcher.main(Launcher.java:13)
Caused by: java.lang.IllegalStateException: No handlers
at org.springframework.util.Assert.state(Assert.java:76)
at org.springframework.web.socket.messaging.SubProtocolWebSocketHandler.start(SubProtocolWebSocketHandler.java:271)
at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:178)
... 14 common frames omitted
Since our project does not support STOMP, we did not connect to Broker and only implemented the original websocket implementation. I have read online tutorials that all write this way, but I don't know why I made an error writing this way.
SpringBoot:3.0.2 spring-boot-starter-websocket:3.0.5
Comment From: wilkinsona
I'm not sure that it would cause the problem, but you shouldn't be mixing Spring Boot 3.0.2 and 3.0.5. From the information you've provided, I can tell that you're writing a servlet-based app, but it's not clear which embedded web server you're using. To make sure that we can see the complete picture, can you please provide a complete yet minimal example that reproduces the IllegalStateException: No handlers failure?
Comment From: GZYangKui
Perhaps there is a conflict between other dependencies and the websocket module. I will create a separate springboot project with only one websocket dependency and maintain the same configuration as the current project, so that the program can run normally.
---- Replied Message ---- | From | Andy @.> | | Date | 04/27/2023 18:59 | | To | @.> | | Cc | @.>@.> | | Subject | Re: [spring-projects/spring-boot] WebSocket startup fail (Issue #35182) |
I'm not sure that it would cause the problem, but you shouldn't be mixing Spring Boot 3.0.2 and 3.0.5. From the information you've provided, I can tell that you're writing a servlet-based app, but it's not clear which embedded web server you're using. To make sure that we can see the complete picture, can you please provide a complete yet minimal example that reproduces the IllegalStateException: No handlers failure?
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>
Comment From: spring-projects-issues
If you would like us to look at this issue, please provide the requested information. If the information is not provided within the next 7 days this issue will be closed.
Comment From: spring-projects-issues
Closing due to lack of requested feedback. If you would like us to look at this issue, please provide the requested information and we will re-open the issue.
Comment From: SBaori
@GZYangKui we waiting for you.