Comment utiliser la transformation de message JMS dans ActiveMQ avec Stomp / JSON
Question
J'envoie des messages au format JSON à un serveur ActiveMQ. J'essaie d'utiliser la transformation JMS pour transformer l'objet codé JSON en un véritable objet Java dans l'espoir de pouvoir utiliser des sélecteurs sur les données qu'il contient.
Ici est un lien vers la documentation sur Stomp et la transformation de message. Ici est un lien vers une discussion sur le correctif où quelqu'un montre un exemple d'objet JSON légal
Le format des objets JSON que j'envoie (en jolie impression) ressemble à ceci:
{ "msg": { "flag1" : "value1", "flag2" : "value2" } }
Les messages arrivent dans la file d'attente des messages, mais avec la propriété transformation-error définie sur 'msg: msg'.
La solution
vous pouvez utiliser n’importe quelle notation JSON pour vos transformations jms-object-json tant que XStream peut le gérer. Vous pouvez consulter des cas de test pour quelques exemples. Là, nous utilisons la classe SamplePojo:
qui est correctement annoté pour pouvoir être représenté avec le JSON suivant
{"pojo": { "name": "Dejan", " ville ": " Belgrade " }}
Vous pouvez essayer d'utiliser la même approche pour vos cours.
J'espère que ça aide, Dejan
Autres conseils
Le seul format accepté par la transformation jms-map-json ou jms-object-json est un format Map simple, qui au format JSON est:
{"map" : {"entry" : [ { "string1": [ "key1", "value1" ] }, { "string2": [ "key2", "value2" ] } ] } }
Il s’agit du même format que celui présenté dans le forum de discussion. Ce format représente un objet de mappage de paire nom / valeur en java.
Les sélecteurs ne sont utilisables que dans les propriétés et les en-têtes.