JMS define seis tipos de interfaz de mensaje: un tipo de mensaje base y cinco subtipos. Los tipos de mensaje se definen de acuerdo con el tipo de carga útil del mensaje, donde la carga útil es el cuerpo de un mensaje que incluye el contenido.
JMS sólo especifica la interfaz y no especifica la implementación. Este enfoque permite la implementación específica de proveedor y el transporte de mensajes al mismo tiempo que se utiliza una interfaz común.
Tipo de mensaje | Descripción |
---|---|
Message | Clase base. Este tipo de mensaje se utiliza para la notificación de sucesos y no tiene carga útil. |
BytesMessage | La carga útil se almacena como una matriz de bytes. Este tipo de mensaje es útil para intercambiar datos en un formato que sea nativo de la aplicación y cuando se utiliza JMS como transporte entre dos sistemas, donde el cliente JMS no conoce el tipo de carga útil de mensaje. Utilice este tipo de mensaje para transmitir mensajes XML con el fin de garantizar que el mensaje se va a transmitir de forma eficaz y que no está sujeto a ninguna conversión de datos innecesaria. |
TextMessage | Los datos se almacenan como una serie de caracteres. Este tipo de mensaje es útil para intercambiar mensajes de texto simples. |
StreamMessage | Un mensaje de corriente de datos es una secuencia de
tipos Java™ primitivos. El objeto de
mensaje hace el seguimiento del orden y de los tipos de estos primitivos
en la corriente de datos. Se aplican las normas de conversión formales; por ejemplo, se
genera una excepción si una aplicación JMS intenta leer un valor doble como un valor
corto. Consulte Java
Message Service Specification, versión 1.1 para obtener una lista completa
de las normas de conversión. 21ABCDEFGH32.345 es un ejemplo de
una carga útil StreamMessage. Consta de los tres campos siguientes:
Si se conoce la estructura de datos, se puede utilizar el método genérico readObject() para devolver el objeto siguiente de la corriente de datos. Si se conoce la estructura de los datos, el cliente JMS puede ser específico sobre el tipo de objeto al que se está accediendo. |
MapMessage | La carga útil de un mensaje de correlación (MapMessage) se
almacena como un conjunto de pares de nombre-valor. El nombre se define
como una serie de caracteres y se escribe el valor. El mensaje de
correlación es útil para entregar datos con clave que pueden cambiar de un mensaje al
siguiente. NumberOfCopies:5 es un ejemplo de carga útil de mensaje de correlación, donde NumberOfCopies es la clave y 5 es el valor. Se puede acceder a los datos utilizando getMapNames(), que devuelve un objeto de enumeración Java. Es posible iterar por el mensaje de correlación utilizando hasMoreElements() para recuperar los pares de nombre-valor correlacionados. |
ObjectMessage | El mensaje de objeto contiene un objeto Java serializable como carga útil. Es útil para intercambiar objetos Java. |