Está en la página 1de 32

Curso Manual de prácticas

Manual de prácticas - Apache Camel -


Consumiendo servicios SOAP
Manual de prácticas para usuario
Contenido
1. Objetivo .................................................................................................................. 3
2. Actividades ............................................................................................................ 3
3. Control de versiones ............................................................................................... 3
4. Apache Maven ....................................................................................................... 4
4.1. Algunos conceptos ......................................................................................... 4
5. SpringBoot ............................................................................................................. 6

Copyright © 2020 | Bmind. Página | 2


1. Objetivo
En esta práctica vamos a crear un proyecto de integración en la que expondremos un api rest
usando REST DSL

2. Actividades
2.1 Crear proyecto
2.1.2 Seleccionar el runtime
2.3 Agregar componentes
2.4 Definir expresiones xpath para obtener el valor de la variable a
seleccionar.
2.6 Definir acciones y rutas donde se copiarán los archivos

3. Control de versiones
ELABORADO POR VERSIÓN FECHA RAZÓN DE LA ACTUALIZACIÓN

Diana Moreno 01 05-03-2021

Copyright © 2020 | Bmind. Página | 3


4. Apache Maven
Maven es una herramienta de gestión y empaquetado de software basada en el
concepto de Modelo de objeto de proyecto (POM - project object model ) que puede
gestionar la creación, la presentación de reporte y la documentación del proyecto a
partir de una pieza central de información.

4.1. Algunos conceptos


Concepto de artefacto

• "paquete" de Java que se implementará


• Diferentes tipos de artefactos (jar, war, plugin,…)
• Ciclo de vida dependiente

Fases para jar

• process-resources
• compile
• process-test-resources
• test-compile
• test
• package
• install
• deploy

Todas las dependencias están definidas

Copyright © 2020 | Bmind. Página | 4


▪ Ejemplo :

Maven actualiza y descarga automáticamente el jar

POM

Como unidad fundamental de trabajo en Maven, POM es un archivo XML


que contiene información sobre el proyecto y los detalles de configuración
utilizados por Maven para construir el proyecto.

Cada artefacto se publica en un repositorio

4 tipos de repositorioCentral

• Public
• Private
• Local

Copyright © 2020 | Bmind. Página | 5


5. SpringBoot
Spring Boot es un marco de código abierto basado en Java que se utiliza para crear
un microservicio. Está desarrollado por Pivotal Team y se utiliza para construir
aplicaciones de stand-alone independientes y listas para producción.

Configura automáticamente su aplicación en función de las dependencias que ha


agregado al proyecto mediante la anotación @EnableAutoConfiguration . Por
ejemplo, si la base de datos MySQL está en su classpath, pero no ha configurado
ninguna conexión de base de datos, Spring Boot configura automáticamente una
base de datos en memoria.

Copyright © 2020 | Bmind. Página | 6


5.1. Características:
• Crear aplicaciones independientes de Spring
• Incruste Tomcat, Jetty o Undertow
• Proporciona dependencias 'de inicio' para simplificar la configuración
de su compilación
• El punto de entrada de la aplicación Spring Boot es la clase que contiene
la anotación @SpringBootApplication y el método principal.
• Configure automáticamente las bibliotecas de Spring y de terceros
siempre que sea posible
• Proporcione funciones listas para producción, como métricas,
comprobaciones de estado y configuración externa.
• Absolutamente sin generación de código y sin requisitos de
configuración XML.

Copyright © 2020 | Bmind. Página | 7


Copyright © 2020 | Bmind. Página | 8
6. Apache Camel
Apache Camel es un marco de código abierto para middleware orientado a mensajes
con un motor de enrutamiento y mediación basado en reglas que proporciona una
implementación basada en objetos Java de los patrones de integración empresarial
utilizando una interfaz de programación de aplicaciones (o lenguaje declarativo
específico de dominio de Java ) para configurar reglas de enrutamiento y mediación.

Copyright © 2020 | Bmind. Página | 9


7. Crear proyecto de integración camel
springBoot

7.1. Crear el proyecto camel

7.2. Ejercicio practico

En esta práctica vamos a crear un proyecto de integración en el que vamos a exponer un


servicio rest usando rest DSL

Copyright © 2020 | Bmind. Página | 10


1. Iniciamos nuestro eclipse

2. Crear un nuevo proyecto de integración File -> New -> Fuse integration
Project

Copyright © 2020 | Bmind. Página | 11


3. Definir el nombre del nuevo proyecto en el campo te texto Project name. para
esta práctica el nombre del proyecto será camel7-xmldsl-rest-to-soap,
dejamos marcada la opción de worksaces por defecto y luego presionamos el
boton Next

Copyright © 2020 | Bmind. Página | 12


4. Definimos el target enviroment o entorno de ejecución. En la plataforma de
ejecución seleccionamos Standalone y en el ambiente de ejecución
seleccionamos springBoot el resto de los valores los dejamos por defecto y
presionamos el botón finalizar.

Copyright © 2020 | Bmind. Página | 13


Copyright © 2020 | Bmind. Página | 14
Si nos arroja este error presionamos ok

Copyright © 2020 | Bmind. Página | 15


5. El resultado de los pasos anteriores se debe ver como el siguiente

Copyright © 2020 | Bmind. Página | 16


6. Luego que se termine la creación del proyecto procedemos a borrar la ruta
con todos sus componentes del archivo camel-context.xml. para esto
seleccionamos la ruta hacemos clic derecho y presionamos el símbolo
eliminar (delete).

Copyright © 2020 | Bmind. Página | 17


7. finalmente nos quedara el camel-context en blanco

8. Luego procederemos a ubicar en la paleta de componentes el componente


route

Copyright © 2020 | Bmind. Página | 18


9. Luego arrastramos y soltamos el componente route en el camel context. Nos
quedara de la siguiente forma.

10. Luego hacemos clic sobre en componente route y debajo se mostrarán las
propiedades. Como se ve a continuación.

Copyright © 2020 | Bmind. Página | 19


Copyright © 2020 | Bmind. Página | 20
11. En estas propiedades cambiaremos el valor del atributo id por _route-rest-
soap. nos quedara de la siguiente manera.

Copyright © 2020 | Bmind. Página | 21


12. Luego ubicaremos en la paleta un componente del tipo direct.

Copyright © 2020 | Bmind. Página | 22


13. Lo arrastramos y soltamos en el camel conteo dentro la ruta creada en el paso
anterior. Quedando de la siguiente manera.

Copyright © 2020 | Bmind. Página | 23


14. Luego cambiaremos los valores del atributo id y le colocaremos _from-api-
rest-to-soap y al atributo Uri le colocaremos el valor direct:rest-to-soap

Copyright © 2020 | Bmind. Página | 24


15. Luego ubicaremos en la paleta de componentes un componente del tipo log y
lo colocaremos debajo del componente direct que agregamos en el paso
anterior le cambiaremos los valores a los atributos id por _log-inicio-ruta-rest-
to-soap y en mensaje le colocaremos al valor :: Inicio Ruta api REST::
${header.name}

Copyright © 2020 | Bmind. Página | 25


16. Luego creamos una carpeta con el nombre velocity en la carpeta recursos

Copyright © 2020 | Bmind. Página | 26


17. Creamos transformación velocity para cambiar del mensaje json al mensaje del
servicio SOAP. Para esto en la carpeta velocity que creamos en el paso anterior
creamos un archivo con el nombre
ResponseSoapCAMBIAR_CONTRASENIA.vm, en el contenido de esta
pegamos el request de nuestro servicio SOAP

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"

xmlns:cam="http://CambiarContrasenaServices.servicios.mercurio.servisoft.com.co/">
<soapenv:Header/>
<soapenv:Body>
<cam:CambiarPassword>
<arg0>
<ID_USRIO>usr01</ID_USRIO>
<id_UsuarioS>usr01</id_UsuarioS>
<nueva_Password>123</nueva_Password>
<passwordS>124</passwordS>
</arg0>
</cam:CambiarPassword>
</soapenv:Body>
</soapenv:Envelope>

Copyright © 2020 | Bmind. Página | 27


18. Nos debe quedar de la siguiente manera

19. Luego de la paleta de componentes ubicamos el componente removeHeaders.


y lo colocamos en el camel context debajo del log y le cambiamos el valor del
atributo id le colocamos _removeAllHeader y a la propiedad pattern le
colocamos un asterisco *. Para indicar que remueva todos los headers. Nos
quedar de esta forma.

Copyright © 2020 | Bmind. Página | 28


20. Luego agregamos los headers que son necesarios para invocar un servicio soap
estos los sestearemos con expresiones constantes. Serían los siguientes.

Nombre Valor ID
Content-Type Content-Type headerContentType
Accept text/xml;charset=UTF-8 headerAccept
SOAPAction CambiarPassword headerSOAPAction
CamelHttpMethod POST headerCamelHttpMethod

21. Luego de agregar las cabeceras se nuestra ruta se debe ver así

Copyright © 2020 | Bmind. Página | 29


22. Luego de agregar las cabeceras agregamos un to hacia la transformación
velocity para esto por fuente copiamos las siguientes líneas luego del ultimo
header

<to id="_velocitySoap" uri="velocity:velocity/RequestSoapCAMBIAR_CONTRASENIA.vm"/>

<to id="_toHttpSOAP" uri="http4://localhost:8088/mockCambiarPasswordPortBinding"/>

Copyright © 2020 | Bmind. Página | 30


23. Luego creamos nuestra apis rest con la con los siguientes valores
Atributo Valor valor
component restlet
contextPath /rs
host localhost
port 8956
Rest / path /seguridad
http metod put
uri /password
to ur direct:rest-to-soap

Nos debe quedar de la siguiente forma

Copyright © 2020 | Bmind. Página | 31


24. Luego agregamos las siguientes dependencias al archivo pom.xml

• camel-jackson
• camel-velocity
• camel-http4

25. Luego creamos un mock services

(https://www.soapui.org/docs/soap-mocking/service-mocking-overview/)
usando el wsdl de la practica anterior y lo iniciamos, luego iniciamos nuestro
proyecto y lo probamos de la manera acostumbrada

Copyright © 2020 | Bmind. Página | 32

También podría gustarte