Как использовать преобразование сообщений JMS в ActiveMQ с Stomp/JSON

StackOverflow https://stackoverflow.com/questions/402651

  •  03-07-2019
  •  | 
  •  

Вопрос

Я отправляю сообщения в формате JSON на сервер ActiveMQ.Я пытаюсь использовать преобразование JMS для преобразования объекта, закодированного в формате JSON, в настоящий объект Java в надежде, что смогу использовать селекторы для данных внутри.

Здесь — это ссылка на документацию по Stomp и преобразованию сообщений.Здесь это ссылка на обсуждение патча, где кто-то показывает пример допустимого объекта JSON.

Формат объектов JSON, которые я отправляю (красивым шрифтом), похож на этот:

{
   "msg": {
      "flag1" : "value1",
      "flag2" : "value2"
   }
}

Сообщения поступают в очередь сообщений, но для свойства Transformation-Error установлено значение 'msg:сообщение'.

Это было полезно?

Решение

вы можете использовать любую нотацию JSON для преобразований jms-object-json, если XStream может ее обработать.Вы можете взглянуть на тестовые примеры для некоторых примеров.Здесь мы используем класс SamplePojo:

https://svn.apache.org/repos/asf/activemq/trunk/activemq-stomp/src/test/java/org/apache/activemq/transport/stomp/SamplePojo.java

который правильно аннотирован, поэтому его можно представить с помощью следующего JSON

{"pojo": {"name": "dejan", "City": "Belgrade"}}

Вы можете попробовать использовать тот же подход для своих занятий.

Надеюсь, это поможет, Дежан

Другие советы

Единственный формат, принимаемый преобразованием jms-map-json или jms-object-json, — это простой формат карты, который в JSON имеет вид:

{"map" : 
  {"entry" : 
    [ 
      { "string1": [ "key1", "value1" ] },
      { "string2": [ "key2", "value2" ] }
    ]
  }
}

Это тот же формат, что и на дискуссионном форуме.Этот формат представляет объект карты пары имя/значение в Java.

Селекторы можно использовать только в свойствах и заголовках.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top