【发布时间】:2023-03-31 10:26:02
【问题描述】:
我正在使用 Spring-Boot。我想结合使用 JAX RS 作为我的基本 REST-API 和 WebSockets(使用 Stomp)。然而,这两个库似乎以冲突告终。
我有以下 WebSocketConfig:
@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-Connection(404 异常)。我认为问题出在 Jax RS 组件上,它可能试图“使用”/hello 调用,但没有找到映射到它的资源。
我的问题是:如何告诉 Jax RS 要么忽略 /hello 调用,以便将其传递给 WebSocketMessageBroker 或使其彼此相邻工作?
【问题讨论】:
标签: java spring web-services rest