STOMP websocket через определение XML выбрасывает "subProtocolWebSocketHandler: No handlers" - PullRequest
0 голосов
/ 19 февраля 2020

Я пытаюсь настроить конечную точку веб-сокета STOMP, как описано в документации , но когда я использую определение xml, я получаю исключение

org.springframework.context.ApplicationContextException: Failed to start bean 'subProtocolWebSocketHandler'; nested exception is java.lang.IllegalArgumentException: No handlers

Если я настрою это с помощью аннотаций, все будет работать как положено. Вот код:

Версия аннотации

@Configuration
@EnableWebSocketMessageBroker
public class WebSocketBrokerConfig implements WebSocketMessageBrokerConfigurer {

    @Override
    public void configureMessageBroker(MessageBrokerRegistry config) {
        config.enableSimpleBroker("/topic");
        config.setApplicationDestinationPrefixes("/app");
    }

    @Override
    public void registerStompEndpoints(StompEndpointRegistry registry) {
        registry.addEndpoint("/ws").setAllowedOrigins("http://localhost:8888").withSockJS();
    }
}

XML

<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:websocket="http://www.springframework.org/schema/websocket"
       xmlns="http://www.springframework.org/schema/beans"
       xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/websocket
        https://www.springframework.org/schema/websocket/spring-websocket.xsd">

    <websocket:message-broker application-destination-prefix="/app">
        <websocket:stomp-endpoint path="/ws" allowed-origins="http://localhost:8888">
            <websocket:sockjs/>
        </websocket:stomp-endpoint>
        <websocket:simple-broker prefix="/topic"/>
    </websocket:message-broker>

</beans>

Через отладку я видел что enableSimpleBroker () из класса MessageBrokerRegistry вызывается с пустым массивом String, а addEndpoint () из WebMvcStompEndpointRegistry никогда не вызывается при использовании версии XML, поэтому я полагаю, что существует некоторая проблема с загрузкой XML, возможно?

Что я могу делать не так? Все будет полезно, спасибо.

...