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

Comentarios

Entradas populares