Как опубликовать объект JSON в ActiveMQ - PullRequest
0 голосов
/ 11 июня 2018

Я пытаюсь опубликовать сообщение JSON (объект) в очереди / теме ActiveMQ.В настоящее время я конвертирую объект JSON в строку, а затем публикую его.Но я не хочу конвертировать его в String. Я не хочу конвертировать его в String, вместо этого я хочу отправить его как объект 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);
            }
        });
    }

1 Ответ

0 голосов
/ 11 июня 2018

Лучше всего использовать текст в очереди, так как вы сможете намного легче отлаживать, а также не ограничиваться одним и тем же языком / структурой или даже версией библиотек в приложениях по обе стороны очереди.

Если вы действительно хотите эту жесткую связь (т.е. когда вы используете очередь внутри одного приложения и вам не нужно проверять сообщения вручную в очередях), вы можете сделать это:

вместоиз return session.createTextMessage(s); do return session.createObjectMessage(msg);

Еще одна вещь: учтите, что использование JMS ObjectMessage может вызвать проблемы с безопасностью, если у вас нет 100% контроля над сообщениями, публикующими код.Поэтому это не разрешено в настройках ActiveMQ по умолчанию.Вы должны включить это в настройках клиента и сервера.Для справки см. Эту страницу: http://activemq.apache.org/objectmessage.html

...