我试图理解为什么在收到序列化对象时会将其删除。
这是一般布局: 1.生成JMS消息并发送到外部ActiveMQ代理的主题。代码基于Spring引导JMS消息,可以在http://bit.ly/QECQ21查看。在我的例子中,我生成了各种类型的消息(文本,POJO,Map) 2.我有两个订阅此主题的JMS消费者。
一个。一个是java客户端。此客户端可以正确识别所有各种消息类型。
湾第二个客户端是基于websockets + stomp.js的javascript客户端。这可以正确识别文本消息,但不能识别包含生产者生成的POJO的消息。
以下是来自Web客户端的示例输出(来自http://bit.ly/Od0noF)。
我做错了什么?代码中的地址或其他内容有问题吗?关于我使用(或滥用)STOMP的方式?我不得不在Application.java类中使用“tcp:// localhost:61616”来正确联系代理。
谢谢
MESSAGE priority:4 persistent:true subscription:sub-0 expires:0 timestamp:1396418227090 destination:/ topic / greetings message-id:ID:blackbox-53461-1396418226684-1:1:2:1:1 content-长度:4 ping
体:平
MESSAGE priority:4 persistent:true subscription:sub-0 expires:0 timestamp:1396418227117 destination:/ topic / greetings message-id:ID:blackbox-53461-1396418226684-1:1:2:1:2
身体:======>缺少身体
MESSAGE priority:4 persistent:true subscription:sub-0 expires:0 timestamp:1396418227122 destination:/ topic / greetings message-id:ID:blackbox-53461-1396418226684-1:1:2:1:3
身体:======>缺少身体
MESSAGE priority:4 persistent:true subscription:sub-0 expires:0 timestamp:1396418227125 destination:/ topic / greetings message-id:ID:blackbox-53461-1396418226684-1:1:2:1:4 content-长度:5关闭
体:关闭
答案 0 :(得分:1)
还没有答案所以我会添加我的发现。 STOMP是一种基于文本的协议,因此需要将主体转换为文本格式(例如JSON)。在我的例子中,这可以使用spring websockets框架(内部使用Jackson)或使用Jackson将对象显式编码为JSON并将其作为文本消息进行传输来完成