如何在 ActiveMQ 中通过 Stomp/JSON 使用 JMS 消息转换
Posted
技术标签:
【中文标题】如何在 ActiveMQ 中通过 Stomp/JSON 使用 JMS 消息转换【英文标题】:How to use JMS Message Transformation in ActiveMQ with Stomp/JSON 【发布时间】:2010-09-28 23:52:08 【问题描述】:我正在向 ActiveMQ 服务器发送 JSON 格式的消息。我正在尝试使用 JMS 转换将 JSON 编码的对象转换为真正的 Java 对象,希望能够在内部数据上使用选择器。
Here 是指向 Stomp 和消息转换文档的链接。 Here 是一个关于补丁讨论的链接,其中有人展示了一个合法 JSON 对象的示例
我发送的 JSON 对象的格式(漂亮的打印)类似于:
“味精”: “标志1”:“值1”, “标志 2”:“值 2”消息到达消息队列,但转换错误属性设置为“msg : msg”。
【问题讨论】:
【参考方案1】:转换 jms-map-json 或 jms-object-json 接受的唯一格式是简单的 Map 格式,在 JSON 中是:
“地图” : “入口” : [ "string1": [ "key1", "value1" ] , "string2": [ "key2", "value2" ] ]这与论坛中显示的格式相同。此格式表示 java 中的名称/值对映射对象。
选择器只能用于属性和标题。
【讨论】:
非常感谢您的回答正是我要找的!【参考方案2】:只要 XStream 可以处理,您可以为 jms-object-json 转换使用任何 JSON 表示法。您可以查看一些示例的测试用例。在那里,我们使用 SamplePojo 类:
https://svn.apache.org/repos/asf/activemq/trunk/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/SamplePojo.java
已正确注释,因此可以用以下 JSON 表示
"pojo": “名称”:“德扬”, “城市”:“贝尔格莱德”
您可以尝试对您的课程使用相同的方法。
希望这会有所帮助, 德让
【讨论】:
它现在应该可以工作了,但我不知道这是否仍然适用,或者现在是否有更好的方法。【参考方案3】:应该提到ActiveMQ版本至少必须是5.8,因为5.6版本我在转换不起作用时遇到问题。
【讨论】:
以上是关于如何在 ActiveMQ 中通过 Stomp/JSON 使用 JMS 消息转换的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ActiveMQ 中通过 Stomp/JSON 使用 JMS 消息转换
Spring+Stomp+ActiveMq实现websocket长连接
Spring+Stomp+ActiveMq实现websocket长连接