java - JMS/websocket 消息中缺少正文

标签 java spring websocket jms stomp

我试图理解为什么序列化对象在收到时被删除。

这是总体布局: 1. 生成 JMS 消息并发送到外部 ActiveMQ 代理上的主题。该代码基于 Spring boot JMS 消息,可以在 http://bit.ly/QECQ21 查看。 。在我的示例中,我生成各种类型的消息(文本、POJO、 map ) 2. 我有 2 个 JMS 消费者订阅了该主题。

a.一种是java客户端。该客户端正确识别所有不同的消息类型。

b.第二个客户端是基于 websockets + stomp.js 的 javascript 客户端。这可以正确识别文本消息,但不能识别包含我的生产者生成的 POJO 的消息。

以下是 Web 客户端的示例输出(来源:http://bit.ly/Od0noF)。

我做错了什么?寻址有问题还是代码中有其他问题?关于我使用(或误用)STOMP 的方式?我必须在 Application.java 类中使用“tcp://localhost:61616”才能正确联系代理。

谢谢

消息优先级:4持久:true订阅:sub-0过期:0时间戳:1396418227090目的地:/主题/问候消息ID:ID:blackbox-53461-1396418226684-1:1:2:1:1内容-长度:4 ping

正文:ping

<小时/>

消息优先级:4持久:true订阅:sub-0过期:0时间戳:1396418227117目的地:/主题/问候消息ID:ID:blackbox-53461-1396418226684-1:1:2:1:2

body :======>失踪的 body

<小时/>

消息优先级:4持久:true订阅:sub-0过期:0时间戳:1396418227122目的地:/主题/问候消息ID:ID:blackbox-53461-1396418226684-1:1:2:1:3

body :======>失踪的 body

<小时/>

消息优先级:4持久:true订阅:sub-0过期:0时间戳:1396418227125目的地:/主题/问候消息ID:ID:blackbox-53461-1396418226684-1:1:2:1:4内容-长度:5 关闭

正文:关闭

<小时/>

最佳答案

还没有答案,所以我将添加我的发现。 STOMP 是基于文本的协议(protocol),因此正文需要转换为文本格式(例如 JSON)。就我而言,这可以使用 spring websockets 框架(内部使用 Jackson)或使用 Jackson 将对象显式编码为 JSON 来完成,并将它们作为文本消息传输

关于java - JMS/websocket 消息中缺少正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22802865/

相关文章:

java - 持久化数据的 DBUnit 问题

c# - Web套接字Ping/Pong和Close控制框架的实现

javascript - C 中 Websocket 服务器的问题

java - 在 jCombobox 上实现自动完成

java - OpenCSV 从最后一行和特定列获取值

java - 如何从 JVM 中检测到长时间的 gc?

java - spring + jsp + hibernate 中的 NotReadablePropertyException

java - 使用 Selenium-Java 启动具有特定主页的 Chrome

java - 通过 Spring Boot 进行国际化。默认消息

c# - Tweetinvi 接收推文速度慢?备择方案?