Estimados,
Comparto dos estrategias para el payload de los mensajes JMS:
Objetos
Texto plano
Objetos
Esta estrategia consiste en definir POJOs comunes entre consumidor y receptor y utilizarlo como payload del mensaje JMS. Esta estrategia tiene dos grandes cualidades:
es sencilla (muy importante)
es efectiva y performante.
Sin embargo, sufre de un gran problema que debe ser tenido en cuenta: produce un alto acoplamiento entre la aplicación productora y la aplicación consumidora de mensajes, dado que ambas aplicaciones deben tener en su classloader el objeto a traficar. La actualización de algún POJO debe aplicarse al mismo tiempo en ambos sistemas y no es posible su uso si cliente y consumidor están implementados en diferente plataforma.
Text plano
Una solución alternativa que ayuda a suplir estas carencias y que pueden utilizar en su vida profesional, es utilizar un mensaje de tipo TextMessage (payload de tipo String) usando algún formato estándar (p.ej: JSON, XML, etc). Esta estrategia tiene algunas de las cualidades que la presentada anteriormente y se le suman dos más:
sigue siendo sencilla (generar un json/xml desde un objeto no es complejo)
menor acoplamiento entre productor y consumidor
mejora en la mantenibilidad.
La principal desventaja de este enfoque comparada con la primer estrategia es que no es tan performante y tan sencilla, pero en lo que refiere a integración de aplicaciones, es importante que estas sean lo más desacopladas posibles para mejorar la mantenibilidad de la solución.
Qué opción a utilizar, eso sigue dependiendo de cada caso y requerimientos de negocio, pero les dejo este post con dos opciones con sus ventajas y desventajas.
Les dejo un link alternativo donde se presenta una discusión al respecto
http://jmesnil.net/weblog/2012/07/27/on-jms-objectmessage-and-its-pitfalls/
saludos
Guzmán