JMS significa Servicio de Mensajes de Java. JMS es un estándar que define cómo es posible acceder a sistemas de mensajería empresariales desde programas de Java. La API de JMS es implementada por proveedores de servicios de mensajería, como IBM MQ, para permitir que las aplicaciones cliente de JMS accedan al servicio de mensajería del proveedor.
En este tutorial, pondrás un mensaje que envíe tus datos a una fila, y la aplicación consumidora los obtendrá de una fila. Utilizarás la API de JMS para conectarte a tu proveedor de mensajería, que en este caso es IBM MQ.
Requisitos Previos
- Java Software Development Kit (JDK), para desarrollar y ejecutar aplicaciones
- Clases de JMS, en el archivo JMS.jar
- Clases de IBM e IBM MQ para JMS, en el archivo com.ibm.mq.allclient.jar
- La muestra JmsPutGet.java
Cómo desarrollar una aplicación de punto a punto con JMS e IBM MQ
Tu aplicación tiene que ser capaz de hacer lo siguiente:
- Conectarse al gestor de filas
- Abrir una fila
- Poner un mensaje
- Obtener un mensaje
- Cerrar la fila
- Desconectarse del gestor de filas
Asumimos que estos objetos de MQ se establecen en el servidor de MQ al que te estás conectado:
- Gestor de filas QM1
- Fila DEV.QUEUE.1
- Canal DEV.APP.SVRCONN
- Puerto 1414
Si estás usando tus propios objetos, será necesario ajustar estos nombres en consecuencia. O bien, es posible ir a un tutorial Preparado, Listo, Conéctate para empezar.
Si ya realizaste un tutorial Preparado, Listo, Conéctate, tu gestor de filas ya debería estar configurado correctamente. Si no es así, será necesario configurar la autorización para que el gestor de filas acepte la conexión desde la aplicación por medio de un canal con nombre, y la aplicación tiene que estar autorizada para poner y obtener mensajes de la fila.
Si ya tienes una aplicación de JMS, pero quieres obtener ayuda para el rendimiento o la depuración, lee este artículo.
Configura tu entorno
En el primer paso, te guiamos a lo largo de los requisitos previos de la instalación y configuración.
Crea un directorio para guardar los archivos necesarios para la muestra, por ejemplo, en tu directorio inicial:
mkdir MQClient
Desde la carpeta
MQClient
, descarga el archivocom.ibm.mq.allclient.jar
concurl
.curl -o com.ibm.mq.allclient-9.1.4.0.jar https://repo1.maven.org/maven2/com/ibm/mq/com.ibm.mq.allclient/9.1.4.0/com.ibm.mq.allclient-9.1.4.0.jar
Desde la carpeta
MQClient
, descarga el archivo de la API de JMS concurl
.curl -o javax.jms-api-2.0.1.jar https://repo1.maven.org/maven2/javax/jms/javax.jms-api/2.0.1/javax.jms-api-2.0.1.jar
Si no tienes la versión 8 de Java JDK, es posible descargarla desde aquí. Selecciona la descarga adecuada para tu plataforma e instálala.
Descarga la aplicación de muestra de JMS de punto a punto
Obtén la muestra de GitHub, guárdala en tu máquina local y revisa algunas de las construcciones esenciales de JMS y dónde es posible agregar el anfitrión, el puerto, el canal y los detalles de la fila para que tu muestra pueda conectarse al administrador de filas.
En tu directorio
MQClient
, crea la siguiente estructura de directorioscom/ibm/mq/samples/jms
.En Windows:
mkdir -p com\ibm\mq\samples\jms
En Linux:
mkdir -p com/ibm/mq/samples/jms
Desde el directorio
MQClient/com/ibm/mq/samples/jms
, descarga la muestra JmsPutGet.java de GitHub concurl
:curl -o JmsPutGet.java https://raw.githubusercontent.com/ibm-messaging/mq-dev-samples/master/gettingStarted/jms/JmsPutGet.java
Edita el archivo
JMSPutGet.java
. Reemplaza las variables anfitrión, puerto y contraseña de la aplicación para que coincidan con la configuración de tu gestor de filas.// Crea variables para la conexión a MQ private static final String HOST = "_YOUR_HOSTNAME_"; // Nombre o dirección IP del anfitrión private static final int PORT = 1414; // Puerto del receptor para tu gestor de filas private static final String CHANNEL = "DEV.APP.SVRCONN"; // Nombre de canal private static final String QMGR = "QM1"; // Nombre del gestor de filas private static final String APP_USER = "app"; // Nombre de usuario que la aplicación utiliza para conectarse a MQ private static final String APP_PASSWORD = "_APP_PASSWORD_"; // Contraseña que la aplicación utiliza para conectarse a MQ private static final String QUEUE_NAME = "DEV.QUEUE.1"; // Fila que la aplicación utiliza para poner y obtener mensajes
Ahora deberías ser capaz de compilar la aplicación y ejecutarla.
Compila y ejecuta tu aplicación de JMS
Aquí es donde podrás finalmente conectar tu aplicación al gestor de filas, y poner y obtener mensajes de la fila.
Para compilar la muestra, ve a tu directorio de MQClient.
Usa javac para complicar tu aplicación.
Desde el directorio
MQClient
, utilizajavac
para compilar tu aplicación.En Windows:
javac -cp .\com.ibm.mq.allclient-9.1.4.0.jar;.\javax.jms-api-2.0.1.jar com\ibm\mq\samples\jms\JmsPutGet.java
En Linux:
javac -cp ./com.ibm.mq.allclient-9.1.4.0.jar:./javax.jms-api-2.0.1.jar com/ibm/mq/samples/jms/JmsPutGet.java
Para confirmar que la muestra está compilada, ejecuta uno de estos comandos. Ahora deberías ver un archivo
.class
junto con el archivo.java
.En Windows, ejecuta el comando
dir
:dir com\ibm\mq\samples\jms\
En Linux, ejecuta el comando
ls
:ls -l com/ibm/mq/samples/jms/
Ahora deberías ver un archivo
.class
junto con el archivo.java
:Ejecuta tu aplicación.
En Windows:
java -cp .\com.ibm.mq.allclient-9.1.4.0.jar;.\javax.jms-api-2.0.1.jar;. com.ibm.mq.samples.jms.JmsPutGet
En Linux:
java -cp ./com.ibm.mq.allclient-9.1.4.0.jar:./javax.jms-api-2.0.1.jar:. com.ibm.mq.samples.jms.JmsPutGet
Deberías ver un resultado como éste:
Próximos pasos
¡Felicidades! Editaste y compilaste tu primera aplicación de JMS, enviaste un mensaje a una fila de IBM MQ y obtuviste ese mensaje de la fila. Configuraste también tu entorno con todo lo necesario para desarrollar con JMS e IBM MQ.
Tienes conocimientos básicos sobre lo que va a lograr por el lado del servidor de MQ con los objetos de tu aplicación de JMS, y cómo JMS te ayuda a lograr eso.
Si quieres asegurarte de que tu aplicación de JMS va a tener un comportamiento bueno y confiable, echa un vistazo a este artículo.
Aviso
El contenido aquí presentado fue traducido de la página IBM Developer US. Puede revisar el contenido original en este link.