Frage

Ich bin Nachrichten im JSON-Format zu einem ActiveMQ-Server sendet. Ich versuche, JMS Transformation zu verwenden, um das JSON codierte Objekt zu einem echten Java-Objekt in der Hoffnung, in der Lage zu verwandeln Selektoren auf den Daten innerhalb zu verwenden.

Hier ist ein Link auf die Dokumentation zu stampfen und Message Transformation. Hier ist ein Link zu einer Diskussion über den Patch wo jemand zeigt ein Beispiel einer Rechts-JSON-Objekt

Das Format der JSON-Objekte I (in ziemlich print) sende ist ähnlich wie diese:

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

Die Nachrichten kommen in der Nachrichten-Warteschlange, aber mit der Transformation-Fehler-Eigenschaft auf 'msg: msg'.

War es hilfreich?

Lösung

können Sie eine beliebige JSON Notation für Ihre jms-Objekt-json Transformationen verwenden, solange XStream damit umgehen kann. Sie können für einige Beispiele einen Blick auf Testfälle nehmen. 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 sind, so kann es mit dem folgende JSON dargestellt werden

{ "pojo": {         "Name": "Dejan",         „Stadt“: „Belgrad“         }}

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

Hope, das hilft, Dejan

Andere Tipps

Das einzige Format, das von der Transformation jms-map-json akzeptiert oder jms-Objekt-json 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. Dieses Format stellt einen Namen / Wert-Paar Karten Objekt in Java.

Selektoren sind nur nutzbar, auf Eigenschaften und Headers.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top