【问题标题】:How to Publish JSON Object on ActiveMQ如何在 ActiveMQ 上发布 JSON 对象
【发布时间】:2018-11-20 08:27:40
【问题描述】:

我正在尝试将 JSON 消息(对象)发布到 ActiveMQ 队列/主题。 目前我正在将 JSON 对象转换为字符串然后发布它。 但我不想把它转换成字符串。我不想把它转换成字符串而不是我想发送,因为它是 JSON 对象作为消息。

下面是我的代码

public void sendMessage(final JSONObject msg) {
        logger.info("Producer sends---> " + msg);
        jmsTemplate.send(destination, new MessageCreator() {
            public Message createMessage(Session session) throws JMSException {
                String s = msg.toString();
                return session.createTextMessage(s);
                // createTextMessage(msg);
            }
        });
    }

【问题讨论】:

    标签: json jms activemq


    【解决方案1】:

    在队列中使用文本是最佳实践,因为您将能够更轻松地进行调试,并且不会被限制在队列两侧的应用程序上完全相同的语言/框架甚至库版本。

    如果您真的想要这种硬耦合(即,当您在单个应用程序中使用队列并且不需要手动检查队列上的消息时),您可以这样做:

    而不是return session.createTextMessage(s);return session.createObjectMessage(msg);

    还有一件事:请注意,如果您无法 100% 控制发布消息的代码,则使用 JMS ObjectMessage 可能会导致安全问题。因此,这在默认 ActiveMQ 设置中是不允许的。您需要在客户端和服务器设置中启用此功能。供参考,请参阅此页面:http://activemq.apache.org/objectmessage.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-15
      • 2020-10-20
      • 1970-01-01
      • 1970-01-01
      • 2019-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多