EJEMPLO PRÁCTICO MULE ESB – MuleSoft
En este tutorial se explica cómo utilizar Anypoint Studio
para crear una aplicación simple de solicitud y respuesta HTTP. Después de
crear y ejecutar el ejemplo localmente, se puede aplicar lo aprendido para
crear aplicaciones más complejas.
REQUISITOS PREVIOS:
Este tutorial supone que ya ha descargado e instaladoAnypoint Studio. Si no tiene experiencia previa con Eclipse o un IDE basado en
Eclipse, puede revisar la breve introducción a la interfaz de Anypoint Studio.
TAREAS POR
DESARROLLAR:
·
Iniciar Anypoint Studio
·
Crear una aplicación sencilla que muestre un
mensaje en un navegador
·
Aprender acerca del logging
·
Aprender acerca de los flujos en su aplicación
·
Añadir más funciones a su aplicación
INICIAR DE ANYPOINT STUDIO
Si ha iniciado Anypoint Studio como parte del proceso de
instalación y se está ejecutando, omita el resto de esta sección y proceda
directamente a Creación de un nuevo proyecto.
1. Vaya
al directorio de la unidad local en la que instaló Anypoint Studio.
2. Haga
doble clic en el archivo ejecutable para iniciar Anypoint Studio.
·
AnypointStudio.exe
en Windows
·
AnypointStudio.app
en Mac OS
·
AnypointStudio en Linux
3. Cuando
Anypoint Studio muestre el cuadro de diálogo Workspace Launcher, haga clic en OK para aceptar el espacio de trabajo predeterminado.
4. Si
es la primera vez que inicia Anypoint Studio, aparecerá una pantalla de
bienvenida. Haga clic en Crear un proyecto para descartar la pantalla y saltar
directamente al asistente New Mule Project.
CREACIÓN DE UN NUEVO PROYECTO
1. Si
la pantalla New Mule Project no está abierta, haga clic en File> New>
Mule Project.
Anypoint
Studio abre el asistente New Mule Project.
2. Rellene
el campo Project Name con el valor Tutorial basico.
3. Haga
clic en Finalizar para crear el proyecto.
La interfaz de usuario de Anypoint Studio, tiene las
siguientes secciones principales:
El área naranja en el centro es el lienzo donde se crea
una representación visual de su programa, arrastrando bloques de construcción
desde la paleta delineada en verde al lienzo. Para obtener más información
acerca de cómo utilizar el editor visual, consulte esta descripción rápida.
En la parte inferior del lienzo se encuentran las fichas
de Flujo de mensajes y XML de configuración para alternar entre la edición
visual y XML de la aplicación.
En la pestaña Elementos globales se establecen las
propiedades de los elementos de configuración con ámbito global, como la
configuración de escucha HTTP que se presenta más adelante.
Más información
sobre el archivo XML
Cuando crea un proyecto Mule, Anypoint Studio crea un
archivo XML en la carpeta src/main/app,
que aparece en el Explorador de paquetes. Este archivo almacena información de
flujo para el editor visual. Anypoint Studio deriva el nombre de archivo tutorial_basico.xml
del nombre del proyecto, en este caso "Tutorial basico".
El archivo mule-project.xml en la parte inferior del
Explorador de paquetes es el archivo descriptor del proyecto Mule. Abra este
archivo para cambiar el tiempo de ejecución del proyecto, establecer o editar
variables de entorno o editar la descripción del proyecto.
CONSTRUIR UNA APLICACIÓN
En esta sección del tutorial, se crea una aplicación que
muestra un mensaje en el navegador.
Esta sección utiliza estos bloques de construcción:
Conector HTTP:
Permite que su aplicación Mule se conecte a recursos Web a través del protocolo
HTTP o HTTPS. Este conector se encuentra en la sección Connectors de la paleta.
Set Payload
Transformer: Modifica su carga útil en un mensaje "Hola, mundo".
Encuentre esto en la sección Transformers
de la paleta.
1. Busque
la palabra http en la paleta y
arrastre el conector HTTP al lienzo. Esta acción crea el flujo denominado tutorial_basicoFlow.
2. Busque
set payload y arrastre el
transformador Set Payload a la sección Process del flujo.
3. Seleccione
el conector HTTP en el flujo. En Configuración básica en el editor de
propiedades, cambie la ruta a * (asterisco) para permitir cualquier ruta en el
explorador. Por ejemplo, con la configuración * en su lugar, puede utilizar una
dirección de navegador como 0.0.0.0:8081/any ruta. Necesita esta flexibilidad
más adelante cuando amplíe la aplicación.
4. En
General Settings, haga clic en el
signo más verde a la derecha de Configuración del conector:
Aparece el cuadro de diálogo Global Element Properties.
5. Haga
clic en Aceptar para aceptar los valores predeterminados: Host 0.0.0.0 y Puerto
8081.
Más adelante, utilice la dirección IP del host y el
número de puerto 0.0.0.0:8081 en un navegador para ver la respuesta de la
aplicación.
6. Haga
clic en Set Payload transformer para establecer sus propiedades y, en el campo
Value, reemplace el valor de #[] por Hola Informatica:
Con sólo unos pocos clics, ha creado una aplicación.
COMPROBACIÓN DE QUE LA APLICACIÓN FUNCIONA
Para probar la aplicación:
1. Clic
en el proyecto tutorial_basico dentro
del Package Explorer y en la parte
superior seleccione la pestaña Run >
Run As > Mule Application.
Haga clic en Aceptar para guardar e iniciar la
aplicación.
La consola mostrara como salida algo así:
2. Abra
un navegador y escriba la dirección localhost:8081/. Se mostrara el mensaje Hola Informatica.
ADICIONANDO LOGGING
Tan pronto como ejecute la aplicación, Anypoint Studio
inicia el registro de errores, advertencia, seguimiento y depuración de la
información. Anypoint Studio utiliza el registro log de Apache log4j 2. Puede
usar la configuración predeterminada de log4j 2 o modificar la configuración en
el archivo log4j2.xml ubicado en la
ruta src/main/resources del proyecto.
Puede ver esta ruta en Package Explorer.
La paleta contiene un componente Logger que puede incluir
en su flujo para administrar el registro. El registro predeterminado se produce
si agrega un Logger o no.
Para agregar un componente Logger:
1. Busca
la palabra Logger en la paleta.
2. Arrastre
el Logger a la derecha de Set Payload:
TRABAJAR CON FLUJOS
La mayoría de los elementos Mule proporcionan opciones de
configuración, que puede establecer de una de las siguientes maneras:
·
Usando la ficha Properties del bloque de
construcción en el editor visual de Anypoint Studio
·
Usando el código XML en el editor XML de Usando Studio
Utilice Configuration XML en la parte inferior del lienzo
para cambiar a la vista del editor XML.
Las etiquetas XML que representan el flujo tienen un
elemento flow padre. Los elementos
secundarios representan los componentes que arrastró a su lienzo desde la
paleta.
El atributo doc:name
de cada elemento corresponde al nombre de visualización que aparece debajo del
icono del bloque de construcción en el lienzo de Flujo de mensajes. El elemento
http:listener con la propiedad path=”*” y config-ref apunta al elemento
de configuración que ha creado.
El elemento de configuración se sitúa por encima del
flujo que construyó, fuera de él, ya que podría ser referenciado por otros
conectores HTTP en otros flujos. Las configuraciones que establezca en el
elemento de configuración y las de la vista XML de un elemento son las mismas.
El editor bidireccional de Studio actualiza automáticamente
la configuración a medida que cambia de un lado a otro. Por ejemplo, si en la
vista de configuración XML cambia el valor del atributo de puerto en http-listener-config, este cambio se
refleja en el editor visual cuando hace clic en Message Flow para volver al
editor visual.
EXTENDIENDO LA APLICACIÓN
En este punto, su aplicación simplemente devuelve la
palabra Hola Informatica, como una respuesta HTTP en un navegador. Revise la
aplicación para realizar las siguientes acciones:
·
Registre un ID de mensaje único para que Mule lo
asigne automáticamente a cada mensaje que pasa a través de un flujo.
·
Cree una carga dinámica de mensajes entrantes
que aparece en su navegador cuando envía una solicitud a la aplicación.
·
Para cada solicitud, escriba un archivo en una
ubicación especificada que contenga el mensaje entrante dinámico.
Debe agregar otro procesador de mensajes a su flujo para
escribir un payload en un archivo.
Utilice una expresión Mule para registrar y utilizar un ID de mensaje único. El
siguiente procedimiento proporciona instrucciones paso a paso:
1. Haga
clic en el componente Logger existente en su flujo para abrir el editor de
propiedades.
2. Escriba
el texto y la expresión siguientes en el campo Message:
Current path is
#[message.inboundProperties.'http.request.path']
La String #[message.inboundProperties.'http.request.path']
es una expresión Mule que se evalúa la solicitud del mensaje a medida que ejecuta
este punto en el flujo. Incluir este mensaje aquí le indica a Mule que registre
esta información en los archivos de registro de la aplicación, lo cual puede
ser útil en casos de usos más complejos, cuando necesita rastrear el payload en
diferentes puntos de su flujo.
3. Haga
clic en Set Payload del bloque de construcción para abrir su editor de propiedades.
En el campo Value, escriba la siguiente expresión:
#['Hola, ' +
message.inboundProperties.'http.request.path' + '. Hoy es ' +
server.dateTime.format('dd/MM/yy') + '.' ]
El campo Value soporta expresiones Mule, así como textos (Hola
Informatica), Utilizado anteriormente. Las expresiones de Mule se formatean
usando corchetes prefaciados con un #, #[]. Si introduce una expresión de Mule
aquí, Mule la evalúa en tiempo de ejecución y devuelve o utiliza los resultados
para su procesamiento posterior.
Nota:
El message.inboundProperties.'http.request.path' y
server.dateTime.format('dd/MM/yy') son ambas expresiones Mule. Debido a que
está ingresando las expresiones dentro de una expresión Mule más grande, la
sintaxis [] no se requiere alrededor de estas expresiones individuales.
Cualquier cosa que ingrese dentro de la sintaxis [] que no es una expresión
Mule debe estar entre comillas. Mule interpreta una expresión entre comillas
como una cadena de texto.
4. Mueva
el componente Logger a la izquierda
del transformador Set Payload.
5. Arrastre
y suelte un elemento FIle en su
lienzo inmediatamente después del transformador Set Payload.
6. Haga
clic en el componente File para abrir
el editor de propiedades y en el campo Path
defina la ruta de para guardar el archivo. Por ejemplo: C:\Users\<miUsuario>\Downloads
7. En
el campo File Name/Pattern defina el
nombre y el tipo de archivo, de la siguiente manera:
·
# [message.id] .txt
·
# [message.id] es la expresión Mule que se
resuelve al identificador de mensaje único del mensaje actual.
8. Guarde
la aplicación y vuelva a ejecutarla. Haga clic con el botón derecho en tutorial_basico.xml
en el Package Explorer y, a continuación, haga clic en Run As > Mule
Application. En la consola, aparece un mensaje que parece algo así:
9. Vuelva
a su navegador Web y vaya a http://localhost:8081/Mundo. Reemplace la palabra
Mundo con otra palabra de su elección y actualice. Verá los siguientes
resultados:
·
En la consola, aparece el registro del ID de
mensaje único. Por ejemplo:
INFO 2017-10-06
10:51:08,976 [[tutorial_basico].HTTP_Listener_Configuration.worker.01]
org.mule.api.processor.LoggerMessageProcessor: Current path is /Mundo
·
El mensaje dinámico de entrada aparece en su
navegador cuando envía solicitudes. Por ejemplo: Hola, /Mundo. Hoy es 06/10/17.
·
El directorio que especificó para escribir archivos
contiene archivos <UUID>.txt. Por
ejemplo: 5ebf4320-d43b-11e5-a7b3-acbc32b4ecbd.txt
·
El contenido de cada archivo .txt coincide con
el mensaje dinámico de entrada especificado por el Payload.
TUTORIAL ORIGINAL: https://docs.mulesoft.com/anypoint-studio/v/5/basic-studio-tutorial
TUTORIAL ORIGINAL: https://docs.mulesoft.com/anypoint-studio/v/5/basic-studio-tutorial
Comentarios
Publicar un comentario