【问题标题】:How to use JMS Message Transformation in ActiveMQ with Stomp/JSON如何在 ActiveMQ 中通过 Stomp/JSON 使用 JMS 消息转换
【发布时间】:2010-09-28 23:52:08
【问题描述】:

我正在向 ActiveMQ 服务器发送 JSON 格式的消息。我正在尝试使用 JMS 转换将 JSON 编码的对象转换为真正的 Java 对象,希望能够在内部数据上使用选择器。

Here 是指向 Stomp 和消息转换文档的链接。 Here 是一个关于补丁讨论的链接,其中有人展示了一个合法 JSON 对象的示例

我发送的 JSON 对象的格式(漂亮的打印)类似于:

{ “味精”:{ “标志1”:“值1”, “标志 2”:“值 2” } }

消息到达消息队列,但转换错误属性设置为“msg : msg”。

【问题讨论】:

    标签: json activemq stomp


    【解决方案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版本我在转换不起作用时遇到问题。

    【讨论】:

      猜你喜欢
      • 2019-08-18
      • 2015-07-15
      • 2021-11-22
      • 2013-02-05
      • 1970-01-01
      • 1970-01-01
      • 2019-08-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多