我正在使用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可以工作,但是无法建立web socket-Connection(404异常)。我认为问题出在Jax RS组件上,它可能试图“消费”/hello调用,并且没有找到映射到它的资源。
我的问题是:我怎样才能告诉 Jax RS 忽略 /hello 呼叫,以便将其传递到 WebSocket消息代理或让它彼此相邻工作?
它与Spring-Boot泽西有关:允许泽西提供静态内容。泽西servlet的默认映射是/*
,它占用了所有请求。默认情况下,它不会转发任何找不到的路由。
您有两种选择:
>
更改泽西servlet的默认映射。您可以通过
使 Jersey 作为 servlet 过滤器运行,而不是作为 servlet 运行。这样做允许您使用 Jersey 设置一个属性,该属性将允许它将请求的路由转发到 Servlet 容器,这些路由未在 Jersey 应用程序中映射。
在这篇文章中,你可以看到如何解决这个问题
我们正在将SpringWebSockets集成到我们的应用程序中,我运行了HelloWorld示例,令人惊讶的是,spring为我们连接了一切,以便将服务器端通知推送到客户端。 不过,我有一些简单的问题 1) 队列是如何创建的?我使用的是ActiveMQ,队列名称与我在目的地中指定的不同(例如,像greetings-user3n9\u jn3i)。 2)目标名称是否不同于队列? 3) 我正在使用A
问题内容: 如您所知,角形和细枝形都有共同的控制结构-双花括号。如何更改Angular的默认值? 我知道我可以在Twig中做到这一点,但是在某些项目中,我只能做到JS。 问题答案: 您可以使用service 更改开始和结束插值标签。一个方便的地方是在模块初始化时。 https://docs.angularjs.org/api/ng/provider/$interpolateProvider
我有一个带有如下所示的文件: 我们过去常常使用注释来读取这些值,因此字符串与“子设置”的前缀相同。 我的任务是清理这个应用程序,我想使用与属性文件内容相匹配的大型配置对象来使用,以使代码更易于使用。 我认为configuration类的结构应该是这样的(Kotlin示例,但这并不重要): 请注意,也用于决定注册哪个bean: 如何设置此配置(无需重写以消除此应用程序所有实例的命名问题)?
问题内容: 我正在尝试在同时引用 jQueryUI 和 Bootstrap 3 的View 上使用。如果我在jQueryUI的js之后加载Boostrap,则调用成功,但是如果我在Bootstrap之后调用jQueryUI,则出现错误,并且没有任何效果。您可以自己尝试。互联网上对此进行了大量讨论,我询问了有关GitHub的问题,但我还找不到解决方案。 问题答案: 理想的解决方案是采用没有工具提示的
我所有涉及gui的代码都有问题。例如,公共类Ritboard扩展Jboard行给我一个错误: 在javax.swing.JComponent中的getBaselineResizeBeacior()与在java.awt.Component中的getBaselineResizeBeacior()冲突;试图使用不兼容的返回类型 他的权宜之计是实施什么都不做的方法。我也尝试重新安装IntelliJ。有谁知
我们有一个子类,我们不需要任何等号和哈希码比较。它在超级类中处理。 但是FindBugs给出了错误-EQ_DOESNT_OVERRIDE_EQUALS:这个类扩展了一个类,该类定义了一个EQUALS方法并添加了字段,但没有定义EQUALS法本身。因此,该类实例上的相等将忽略子类的标识和添加的字段。确保这是预期的,并且您不需要重写equals方法。即使您不需要重写equals方法,也可以考虑无论如何