2008-12-31 12 views
6

Ich sende Nachrichten im JSON-Format an einen ActiveMQ-Server. Ich versuche, JMS-Transformation zu verwenden, um das JSON-codierte Objekt in ein echtes Java-Objekt umzuwandeln, in der Hoffnung, Selektoren für die darin enthaltenen Daten verwenden zu können.Verwendung der JMS-Nachrichtenumwandlung in ActiveMQ mit Stomp/JSON

Here ist ein Link zur Dokumentation über Stomp und Message Transformation. Here ist ein Link zu einer Diskussion über die Patch, wo jemand

Das Format der JSON-Objekte ein Beispiel eines Rechts JSON-Objekt zeigt I (in ziemlich Druck) sind ähnlich wie diese schicke:

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

Die Nachrichten kommen in der Nachrichtenwarteschlange an, jedoch mit der Eigenschaft transformation-error auf 'msg: msg'.

Antwort

3

Sie können jede JSON-Notation für Ihre jms-Objekt-json-Transformationen verwenden, solange XStream damit umgehen kann. Für einige Beispiele können Sie Testfälle betrachten. Dort verwenden wir SamplePojo Klasse:

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

, die richtig mit Anmerkungen versehen ist, um es mit dem folgenden JSON dargestellt werden kann

{ "pojo": { "name": "Dejan", " Stadt ":" Belgrad " }}

Sie können versuchen, den gleichen Ansatz für Ihre Klassen zu verwenden.

hoffe, das hilft, Dejan

+0

link funktioniert nicht proberly !!! –

+0

sollte es jetzt funktionieren, aber ich weiß nicht, ob das noch gilt oder ob es jetzt eine bessere Methode gibt. –

4

Das einzige Format, das von der jms-map-json oder jms-Objekt-json Transformation akzeptiert ist ein einfaches Map-Format, das in JSON ist:

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

Dies ist das gleiche Format im Diskussionsforum gezeigt ist . Dieses Format repräsentiert ein Name/Wert-Paar-Map-Objekt in Java.

Selektoren können nur für Eigenschaften und Header verwendet werden.

+0

Sie sehr viel Ihre Antwort danken ist das, was ich suche! –