2008-12-31 7 views
6

Wysyłam wiadomości w formacie JSON do serwera ActiveMQ. Próbuję użyć JMS Transformation, aby przekształcić zakodowany obiekt JSON w prawdziwy obiekt Java, mając nadzieję, że będę mógł używać selektorów w danych wewnątrz.Jak używać transformacji wiadomości JMS w ActiveMQ z Stomp/JSON

Here to łącze do dokumentacji dotyczącej transformacji komunikatu i wiadomości. Here jest link do dyskusji na temat patcha gdzie ktoś pokazuje przykład prawnej JSON obiektu

Format obiektów JSON przesyłam (w ładnej druku) są podobne do tego:

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

Wiadomości przychodzą do kolejki komunikatów, ale z ustawioną właściwością transform-error na "msg: msg".

Odpowiedz

3

możesz użyć dowolnej notacji JSON dla twoich transformacji jms-object-json, o ile XStream może sobie z tym poradzić. Możesz przyjrzeć się przypadkom testowym na kilka przykładów. Nie używamy SamplePojo Klasa:

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

który jest prawidłowo odnotowany więc może być przedstawiony za pomocą następującego JSON

{ "pojo": { "name": "Dejan" " miasto ":" Belgrad " }}

Możesz spróbować zastosować to samo podejście do zajęć.

Nadzieja to pomaga, Dejan

+0

link dosn't work proberly !!! –

+0

powinien działać już teraz, ale nie wiem, czy to nadal ma zastosowanie, czy też jest teraz lepsza metoda. –

4

jedyny format akceptowany przez transformację JMS-map-json lub JMS-Object-json jest prosty format Mapa, która w JSON jest:

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

To jest ten sam format przedstawiony na forum dyskusyjnym . Ten format reprezentuje obiekt mapy pary nazwa/wartość w java.

Selektory są dostępne tylko w przypadku właściwości i nagłówków.

+0

Bardzo dziękuję odpowiedź jest co szukam! –