Tag: spring messaging

从Spring Websocket程序发送STOMP错误

我有一个Spring Websocket Stomp应用程序,它接受SUBSCRIBE请求。 在应用程序中,我有SUBSCRIBE的处理程序,即 @Component public class SubscribeStompEventHandler implements ApplicationListener { @Override public void onApplicationEvent(SessionSubscribeEvent event) {} } 我用来validation订阅。 我会检查onApplicationEvent中的某些内容,并从此函数将STOMP ERROR消息发送回客户端。 我发现这个配方如何使用Spring WebSocket向STOMP客户端发送ERROR消息? 但我需要了解如何获得outboundChannel。 我还尝试了以下代码: public void sendStompError(SimpMessagingTemplate simpMessagingTemplate, String sessionId, String topic, String errorMessage) { StompHeaderAccessor headerAccessor = StompHeaderAccessor.create(StompCommand.ERROR); headerAccessor.setMessage(errorMessage); headerAccessor.setSessionId(sessionId); headerAccessor.setLeaveMutable(true); simpMessagingTemplate.convertAndSendToUser(sessionId, topic, new byte[0], headerAccessor.getMessageHeaders()); } 我尝试将主题作为一些subsciption主题和/ queue / error主题。 但是我没有看到消息传播到客户端。 在客户端,我使用: […]

在weblogic中部署时,缺少Spring集成JMX消息

使用下面的代码我试图发送消息其他应用程序。 在Tomcat中,工作正常 – 发送的消息等于jconsole中收到的消息。 但是当我在weblogic中部署时,发现发送的消息计数与jconsole中的接收计数不匹配意味着错过了一些消息。 @ManagedResource public class OBSNotificationPublisher{ @Autowired private MessageChannel channel; Message message = MessageBuilder.withPayload( obj ).setHeader(JmxHeaders.NOTIFICATION_TYPE, notficationType ).build(); channel.send( message ); } **applicationcontext.xml** 以下是使用的weblogic服务器args: -Dweblogic.wsee.skip.async.response=true -Dcom.sun.management.jmxremote.port=6666 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.autodiscovery=true -Djavax.management.builder.initial=weblogic.management.jmx.mbeanserver.WLSMBeanServerBuilder 有人可以在这帮助我为什么一些消息被错过放在频道? 每次运行都缺少计数。 提前致谢。

无法自动assembly。 找不到SimpMessagingTemplate类型的bean

我基本上是按照文档中提供的指南在Spring中配置Websockets。 我正在尝试从服务器向客户端发送消息,如 “ 从任何地方发送消息 ”一节中所述 在示例之后,您可以自动assembly一个名为SimpMessagingTemplate的类 @Controller public class GreetingController { private SimpMessagingTemplate template; @Autowired public GreetingController(SimpMessagingTemplate template) { this.template = template; } @RequestMapping(value=”/greetings”, method=POST) public void greet(String greeting) { String text = “[” + getTimestamp() + “]:” + greeting; this.template.convertAndSend(“/topic/greetings”, text); } } 但是,我当前的项目找不到bean“SimpMessagingTemplate”。 (Intellij:’无法自动assembly。没有发现SimpMessagingTemplate类型的bean’。 我在互联网上查了几个例子,但是我找不到如何让Spring创建一个SimpMessagingTemplate实例。 我怎样才能自动assembly它? 编辑: 我决定发送更多背景信息。 这是我目前的websocket配置: Websocket适用于此控制器 @Controller public class […]

Spring Websockets @SendToUser没有登录?

我有一个带有websocketfunction的简单弹簧应用程序,到目前为止一切正常。 现在我想使用@SendToUser注释从我的服务器向特定客户端发送消息。 这给了我错误“忽略消息,没有可用的主要信息”。 我知道我的服务器上没有任何登录信息,因此每个用户都是“匿名”且没有委托人(我现在不使用Spring安全性)。 但是每个用户都有一个session-id。 是否有可能以某种方式使用会话ID来区分用户? 我怎样才能实现这一点,以便我的用户获得与session-id相对应的主体?