La API de Java para mensajería XML (JAXM) permite que las aplicaciones de software distribuidas se comuniquen mediante XML (y SOAP ). JAXM admite mensajería asíncrona y síncrona.
JAXM es una de las API de programación XML de Java
Descripción general
La API de Java para mensajería XML (JAXM) permite a los desarrolladores utilizar la mensajería XML utilizando la plataforma Java. Los desarrolladores pueden crear y enviar mensajes XML a través de Internet utilizando la API JAXM. [1]
Además, la API de Java para mensajería XML tiene varias ventajas sobre la llamada a procedimiento remoto , como las siguientes:
- Mensajería unidireccional (asincrónica)
- Enrutamiento de un mensaje a más de una parte
- Mensajería confiable con características como entrega garantizada
La API JAXM completa viene con dos paquetes: [2]
- javax.xml.soap: este paquete contiene la API para crear y completar un mensaje SOAP.
- javax.xml.messaging: este paquete permite enviar mensajes unidireccionales a través de un proveedor de mensajería.
Mensajes
Los mensajes en JAXM son mensajes XML que siguen los estándares y el formato SOAP prescritos. Hay dos tipos principales de mensajes SOAP: los que tienen archivos adjuntos y los que no. Por ejemplo, si desea que su mensaje contenga una imagen, debe enviar un archivo adjunto con el mensaje. La API SAAJ proporciona la clase AttachmentPart para archivos adjuntos en mensajes SOAP. [3]
Conexiones
Se requiere una conexión para enviar y recibir todos los mensajes SOAP. La conexión puede ir a un proveedor de mensajería o un destino en particular. [4] La API JAXM proporciona la clase y la interfaz para representar dos tipos de conexiones:
- javax.xml.soap.SOAPConnection: una conexión del remitente directamente al receptor (una conexión punto a punto)
- javax.xml.messaging.ProviderConnection: una conexión a un proveedor de mensajería
Conexión SOAP
Una SOAPConnection es una conexión punto a punto para enviar mensajes directamente a una parte remota. [5] Un objeto SOAPConnection, que representa una conexión punto a punto, es fácil de crear y utilizar. No es necesario realizar ninguna configuración para utilizar un objeto SOAPConnection porque no es necesario que se ejecute en un contenedor de servlets (como Tomcat) o en un servidor J2EE. Es la única forma que tiene un cliente de tener una conexión sin un proveedor de servicios. [6]
Conexión de proveedor
Un objeto ProviderConnection representa una conexión a un proveedor de mensajería. (La siguiente sección explica más sobre los proveedores de mensajería). Cuando envía un mensaje a través de un objeto ProviderConnection, el mensaje se envía al proveedor de mensajería. El proveedor de mensajería reenvía el mensaje, siguiendo las instrucciones de enrutamiento del mensaje, hasta que el mensaje llega al proveedor de mensajería del destinatario final, que a su vez reenvía el mensaje al destinatario final. [7]
Proveedores de mensajería
Un proveedor de mensajería realiza un seguimiento de los mensajes y los enruta al destino o destinos correctos. Es un servicio que maneja la transmisión y enrutamiento de mensajes. [8]
Cuándo usar un proveedor de mensajería
Un cliente JAXM puede o no utilizar un proveedor de mensajería. Generalmente, no necesita un proveedor de mensajería si solo desea ser un consumidor de servicios web. Algunas limitaciones de no utilizar un proveedor de mensajería son las siguientes:
El cliente solo puede enviar mensajes de solicitud-respuesta El cliente solo puede actuar en el rol de cliente
Algunas ventajas de no utilizar un proveedor de mensajería son las siguientes:
- La aplicación se puede escribir utilizando la plataforma J2SE
- No es necesario implementar la aplicación en un contenedor de servlets o un contenedor J2EE
- No se requiere configuración [9]
Referencias
- ^ http://www.inf.fu-berlin.de/lehre/SS03/19560-P/Docs/JWSDP/tutorial/doc/JAXM.html
- ^ http://www.inf.fu-berlin.de/lehre/SS03/19560-P/Docs/JWSDP/tutorial/doc/JAXM.html
- ^ http://www.tecnun.es/asignaturas/InteInfo/Recursos/Xml/docs/tutorial/doc/JAXM3.html#63936
- ^ http://www.tecnun.es/asignaturas/InteInfo/Recursos/Xml/docs/tutorial/doc/JAXM3.html#63936
- ^ http://docs.oracle.com/javaee/5/api/javax/xml/soap/SOAPConnection.html
- ^ http://docs.oracle.com/javaee/1.3/tutorial/doc/JAXM3.html
- ^ http://docs.oracle.com/javaee/1.3/tutorial/doc/JAXM3.html
- ^ http://www.tecnun.es/asignaturas/InteInfo/Recursos/Xml/docs/tutorial/doc/JAXM3.html#63936
- ^ http://www.inf.fu-berlin.de/lehre/SS03/19560-P/Docs/JWSDP/tutorial/doc/JAXM2.html#63942
Ver también
- JSR 67: API de Java (TM) para mensajería XML
- Especificación 1.1 de la API de Java para mensajería XML (JAXM)
- SOAP con API de archivos adjuntos para Java (SAAJ) Especificación 1.3
- javax.xml.messaging : este paquete se especifica en la especificación JAXM 1.1
- javax.xml.soap : este paquete se especifica en la especificación SAAJ 1.3
- Descripción general de JAXM
- Ejemplo de Hello World para JAXM