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. Esto 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 el formato nativo de una 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. |
TextMessage | Los datos se almacenan como una serie de caracteres. Este tipo de mensaje es útil para intercambiar mensajes de texto simples y para datos de tipo carácter más complejos, por ejemplo documentos XML. |
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 Especificación Java Message Service,
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 parejas 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 reiterar el mensaje de correlación utilizando hasMoreElements() para recuperar las parejas de nombre-valor correlacionadas. |
ObjectMessage | El mensaje de objeto contiene un objeto Java serializable como carga útil. Es útil para intercambiar objetos Java. |