Fix Websocket dynamic registration mapping order (#3580)
Related to https://stackoverflow.com/questions/67923303/dynamic-registration-of-websocket-output-adapter-is-not-working By default the `AbstractHandlerMapping` comes with the `order = Ordered.LOWEST_PRECEDENCE` which sorts added mappings to the end of chain. At the same time Spring Boot registers a `SimpleUrlHandlerMapping` as a fallback for all not handled requests leaving our own mapping behind consideration * Add `order = 0` to the `IntegrationDynamicWebSocketHandlerMapping` bean registration to let it to be consulted before `SimpleUrlHandlerMapping` * Add a note into `web-sockets.adoc` that `@EnableWebsocket` would disable Spring Integration dynamic WebSocket endpoints
This commit is contained in:
@@ -99,7 +99,12 @@ public class WebSocketIntegrationConfigurationInitializer implements Integration
|
||||
|
||||
BeanDefinitionReaderUtils.registerWithGeneratedName(
|
||||
new RootBeanDefinition(IntegrationDynamicWebSocketHandlerMapping.class,
|
||||
IntegrationDynamicWebSocketHandlerMapping::new),
|
||||
() -> {
|
||||
IntegrationDynamicWebSocketHandlerMapping dynamicWebSocketHandlerMapping =
|
||||
new IntegrationDynamicWebSocketHandlerMapping();
|
||||
dynamicWebSocketHandlerMapping.setOrder(0);
|
||||
return dynamicWebSocketHandlerMapping;
|
||||
}),
|
||||
registry);
|
||||
|
||||
BeanDefinitionBuilder enableWebSocketBuilder =
|
||||
|
||||
Reference in New Issue
Block a user