Как использовать преобразование сообщений JMS в ActiveMQ с Stomp/JSON
Вопрос
Я отправляю сообщения в формате JSON на сервер ActiveMQ.Я пытаюсь использовать преобразование JMS для преобразования объекта, закодированного в формате JSON, в настоящий объект Java в надежде, что смогу использовать селекторы для данных внутри.
Здесь — это ссылка на документацию по Stomp и преобразованию сообщений.Здесь это ссылка на обсуждение патча, где кто-то показывает пример допустимого объекта JSON.
Формат объектов JSON, которые я отправляю (красивым шрифтом), похож на этот:
{ "msg": { "flag1" : "value1", "flag2" : "value2" } }
Сообщения поступают в очередь сообщений, но для свойства Transformation-Error установлено значение 'msg:сообщение'.
Решение
вы можете использовать любую нотацию JSON для преобразований jms-object-json, если XStream может ее обработать.Вы можете взглянуть на тестовые примеры для некоторых примеров.Здесь мы используем класс SamplePojo:
который правильно аннотирован, поэтому его можно представить с помощью следующего JSON
{"pojo": {"name": "dejan", "City": "Belgrade"}}
Вы можете попробовать использовать тот же подход для своих занятий.
Надеюсь, это поможет, Дежан
Другие советы
Единственный формат, принимаемый преобразованием jms-map-json или jms-object-json, — это простой формат карты, который в JSON имеет вид:
{"map" : {"entry" : [ { "string1": [ "key1", "value1" ] }, { "string2": [ "key2", "value2" ] } ] } }
Это тот же формат, что и на дискуссионном форуме.Этот формат представляет объект карты пары имя/значение в Java.
Селекторы можно использовать только в свойствах и заголовках.