Come utilizzare la trasformazione dei messaggi JMS in ActiveMQ con Stomp / JSON
Domanda
Sto inviando messaggi in formato JSON a un server ActiveMQ. Sto cercando di utilizzare JMS Transformation per trasformare l'oggetto codificato JSON in un vero oggetto Java nella speranza di poter utilizzare selettori sui dati all'interno.
Qui è un link alla documentazione su Stomp e Message Transformation. Here è un collegamento a una discussione sulla patch in cui qualcuno mostra un esempio di un oggetto JSON legale
Il formato degli oggetti JSON che sto inviando (in bella stampa) è simile a questo:
{ "msg": { "flag1" : "value1", "flag2" : "value2" } }
I messaggi arrivano nella coda dei messaggi, ma con la proprietà di errore di trasformazione impostata su 'msg: msg'.
Soluzione
puoi usare qualsiasi notazione JSON per le tue trasformazioni jms-object-json purché XStream sia in grado di gestirlo. Puoi dare un'occhiata ai casi di test per alcuni esempi. Qui usiamo la classe SamplePojo:
che è correttamente annotato in modo che possa essere rappresentato con il seguente JSON
{" POJO ": { & Quot; nome ": " Dejan " ;, & Quot; città ": " Belgrado " }}
Puoi provare a utilizzare lo stesso approccio per le tue lezioni.
Spero che questo aiuti, Dejan
Altri suggerimenti
L'unico formato accettato dalla trasformazione jms-map-json o jms-object-json è un semplice formato Map, che in JSON è:
{"map" : {"entry" : [ { "string1": [ "key1", "value1" ] }, { "string2": [ "key2", "value2" ] } ] } }
Questo è lo stesso formato mostrato nel forum di discussione. Questo formato rappresenta un oggetto mappa coppia nome / valore in java.
I selettori sono utilizzabili solo su Proprietà e Intestazioni.