2008-12-31 15 views
6

Estoy enviando mensajes en formato JSON a un servidor ActiveMQ. Intento usar JMS Transformation para transformar el objeto codificado JSON en un verdadero objeto Java con la esperanza de poder usar selectores en los datos internos.Cómo usar la Transformación de mensaje JMS en ActiveMQ con Stomp/JSON

Here es un enlace a la documentación sobre Stomp y Transformación de mensajes. Here es un enlace a una discusión sobre el parche en la que alguien muestra un ejemplo de un objeto JSON legal

El formato de los objetos JSON que le estoy enviando (en letra bastante) son similares a esto:

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

Los mensajes llegan a la cola de mensajes, pero con la propiedad de error de transformación establecida en 'msg: msg'.

Respuesta

3

puede usar cualquier notación JSON para sus transformaciones jms-object-json, siempre que XStream pueda manejarlo. Puede echar un vistazo a los casos de prueba para ver algunos ejemplos. Allí, utilizamos la clase SamplePojo:

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

que está debidamente anotada por lo que se puede representar con la siguiente JSON

{ "POJO": { "name": "Dejan", " ciudad ":" Belgrado " }}

Puede intentar utilizar el mismo enfoque para sus clases.

Espero que esto ayude, Dejan

+0

enlace no funciona correctamente! –

+0

debería estar funcionando ahora, pero no sé si esto todavía se aplica o si hay un mejor método ahora. –

4

El único formato aceptado por la transformación JMS-mapa-JSON o jms-objeto-JSON es un formato de mapa simple, que en JSON es:

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

Este es el mismo formato que se muestra en el foro de discusión . Este formato representa un objeto de mapa de par nombre/valor en java.

Los selectores solo se pueden usar en Propiedades y Encabezados.

+0

Muchas gracias su respuesta es lo que estoy buscando! –

Cuestiones relacionadas