我是一个使用Spring-Boot的开发者。我希望能够结合WebSockets(使用Stomp协议)使用JAX RS作为我的基础REST-API。但是这两个库似乎会发生冲突。
以下是我的WebSocket配置:
如果两个类都被注释掉,问题就会出现。如果我注释掉AppConfig,我的套接字连接将没有任何问题。在其他情况下,我的REST-API可以正常工作,但WebSocket连接无法建立(404异常)。我认为问题在于Jax RS组件,它可能试图“消耗”/hello调用并找不到映射到它的资源。
我的问题是:如何告诉Jax RS要么忽略/hello调用,以便它通过WebSocketMessageBroker传递,要么使它们同时工作?
以下是我的WebSocket配置:
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {
@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
config.enableSimpleBroker("/topic");
config.setApplicationDestinationPrefixes("/app");
}
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/hello").setAllowedOrigins("http://localhost:8000").withSockJS();
}
以下是一个 AppConfig:
public class AppConfig extends ResourceConfig {
public AppConfig() {
register(...);
}
}
如果两个类都被注释掉,问题就会出现。如果我注释掉AppConfig,我的套接字连接将没有任何问题。在其他情况下,我的REST-API可以正常工作,但WebSocket连接无法建立(404异常)。我认为问题在于Jax RS组件,它可能试图“消耗”/hello调用并找不到映射到它的资源。
我的问题是:如何告诉Jax RS要么忽略/hello调用,以便它通过WebSocketMessageBroker传递,要么使它们同时工作?