Как использовать преобразование сообщений JMS в ActiveMQ с Stomp / JSON - PullRequest
6 голосов
/ 31 декабря 2008

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

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

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

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

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

Ответы [ 2 ]

4 голосов
/ 31 декабря 2008

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

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

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

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

3 голосов
/ 05 января 2009

вы можете использовать любую нотацию 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": { «Название»: «Деяна», «Город»: «Белград» }}

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

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

...