Pregunta

Estoy enviando mensajes en formato JSON a un servidor ActiveMQ. Estoy tratando de usar JMS Transformation para transformar el objeto codificado JSON en un verdadero objeto Java con la esperanza de poder utilizar selectores en los datos que contiene.

Aquí hay un enlace a la documentación sobre Stomp y Message Transformation. Aquí es un enlace a una discusión sobre el parche donde alguien muestra un ejemplo de un objeto JSON legal

El formato de los objetos JSON que estoy enviando (en letra pequeña) es similar a este:

{
   "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'.

¿Fue útil?

Solución

puede usar cualquier notación JSON para sus transformaciones jms-object-json siempre que XStream pueda manejarlo. Puedes echar un vistazo a los casos de prueba para algunos ejemplos. Allí, usamos 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á anotado correctamente para que se pueda representar con el siguiente JSON

{" pojo ": {         " nombre ": " Dejan " ;,         " ciudad ": " Belgrado "         }}

Puedes intentar usar el mismo enfoque para tus clases.

Espero que esto ayude, Dejan

Otros consejos

El único formato aceptado por la transformación jms-map-json o jms-object-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 pareja nombre / valor en java.

Los selectores solo se pueden utilizar en Propiedades y encabezados.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top