0% encontró este documento útil (0 votos)
217 vistas

Manual de Prácticas - Apache Camel - Exponiendo Un Servicio SOAP

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
217 vistas

Manual de Prácticas - Apache Camel - Exponiendo Un Servicio SOAP

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 35

Curso Manual de prácticas

Manual de prácticas - Apache Camel -


Exponiendo un servicio 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 el expondremos un servicio
soap usando cxf.

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


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 | 8


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 SOAP usando CXF

Copyright © 2020 | Bmind. Página | 9


1. Iniciamos nuestro eclipse

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

Copyright © 2020 | Bmind. Página | 10


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-soa-service, dejamos
marcada la opción de worksaces por defecto y luego presionamos el boton Next

Copyright © 2020 | Bmind. Página | 11


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 | 12


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

Copyright © 2020 | Bmind. Página | 14


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

Copyright © 2020 | Bmind. Página | 15


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 | 16


7. finalmente nos quedara el camel-context en blanco

Copyright © 2020 | Bmind. Página | 17


8. El siguiente paso crearemos un esquema XSD en el cual definiremos el
mensaje de entrada y el mansaje de salida. Para esto en la carpeta de recursos
(resources) crearemos una carpeta wsdl. Haciendo clic derecho en la capeta
resources y seleccionamos las opciones New - > Folder y le colocaremos el
nombre wsdl

Copyright © 2020 | Bmind. Página | 18


9. Dentro de esta carpeta crearemos un esquema xsd. Para esto hacemos clic derecho
sobre la carpeta y seleccionamos las opciones New -> Other y en el campo de texto
colocaremos schema

Copyright © 2020 | Bmind. Página | 19


Copyright © 2020 | Bmind. Página | 20
10. En esta ventana presionamos el botón Next. En esta pantalla cambiaremos el
valor del atributo File Name por CambiarPassword.xsd y presionamos el botón
Finish (Finalizar).

Copyright © 2020 | Bmind. Página | 21


11. El resultado final se verá como el siguiente, en este crearemos los tipos
complejos y los elementos que serán definidos como mensajes del WSDL de
nuestro servicio

12. Haciendo clic en source (fuente) veremos el código fuente en este copiaremos
y pegaremos el contenido del archivo CambiarPassword.xsd

Copyright © 2020 | Bmind. Página | 22


13. Luego el siguiente paso será crear nuestro wsdl. Para esto en la carpeta wsdl
hacemos clic derecho y seleconamos New -> Other

Copyright © 2020 | Bmind. Página | 23


14. En el campo de búsqueda escribiremos wsdl, y presionamos el botón Next y le
colocamos el nombre CambiarPassword.wsdl

Copyright © 2020 | Bmind. Página | 24


Copyright © 2020 | Bmind. Página | 25
16. Luego de presionar el botón Next y Finish sin modificar ningún valor

Copyright © 2020 | Bmind. Página | 26


17. El resultado debe ser como el siguiente.

18. En este nos vamos la pestaña de source, y copiamos y pegamos el contenido del
archivo CambiarPassword.wsdl.

19. En el siguiente paso vamos a definir la ruta para exponer la url soap de nuestro
servicio. Para esto ubicamos el componente route y lo arrastramos y lo soltamos
en nuestro Camel Contex. A esta nueva ruta le cambiamos el valor del atributo id
por _route-soap

Copyright © 2020 | Bmind. Página | 27


Copyright © 2020 | Bmind. Página | 28
20. Luego dentro de esta ruta agregamos el componente cxf y lo colocamos dentro de
la ruta que creamos en el paso anterior, le modificamos los valores del atributo id
le colocamos _from-input-soap y el atributo uri le colocamos el siguiente valor
con el referenciaremos el port y el services que definimos en el wsdl
cxf:http://0.0.0.0:8080/mercurio/CambiarPassword?
wsdlURL=classpath:wsdl/CambiarPassword.wsdl
&serviceName={http://CambiarContrasenaServices.servicios.mercurio.servisoft.com.c
o/}CambiarPassword&
portName={http://CambiarContrasenaServices.servicios.mercurio.servisoft.com.co/}Cambi
arPasswordPort& dataFormat=MESSAGE

21. La ruta debe verse de la siguiente manera

Copyright © 2020 | Bmind. Página | 29


22. El siguiente paso es buscar un componente log y agregarlo a la ruda debajo del
componente CXF. Le cambiamos el id por _log-inicio-ruta-soap y en el atributo
mensaje colocaremos lo siguiente inicio ruta SOAP ${body}

Copyright © 2020 | Bmind. Página | 30


23. Luego en la carpeta recursos (resource) creamos una nueva carpeta que
llamaremos velocity

24. Dentro de esta carpeta crearemos un archivo velocity con el cual asignaremos
valores a la salida de nuestro servicio este archivo lo llamaremos
ResponseSoapCAMBIAR_CONTRASENIA.vm en este copiaremos el
siguiente contenido

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:cam="http://CambiarContrasenaServices.servicios.mercurio.servisoft.com.co/">
<soapenv:Header/>
<soapenv:Body>
<cam:CambiarPasswordResponse>
<return>
<descripcionTransaccion>OK</descripcionTransaccion>
<idUsuario>1</idUsuario>

Copyright © 2020 | Bmind. Página | 31


<resultado>Completado</resultado>
</return>
</cam:CambiarPasswordResponse>
</soapenv:Body>
</soapenv:Envelope>

25. Luego en nuestra ruta camel por fuentes agregamos la siguiente línea
<to id="_to-velocity" uri="velocity:velocity/ResponseSoapCAMBIAR_CONTRASENIA.vm"/>
Con esta línea estamos referenciando la transformación velocity que creamos en el paso anterior
con esto estaría completa nuestra ruta soa

26. Solo nos resta agregar las dependencias Maven para la gestión de componentes
CXF

<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-velocity</artifactId>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http-jetty</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-cxf</artifactId>
</dependency>
<dependency>

Copyright © 2020 | Bmind. Página | 32


<groupId>org.apache.camel</groupId>
<artifactId>camel-core</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-jackson</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-spring</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-ejb</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-undertow</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-cxf</artifactId>
<version>2.23.2.fuse-780036-redhat-00001</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-saxon</artifactId>
<version>2.23.2.fuse-780036-redhat-00001</version>
</dependency>

Copyright © 2020 | Bmind. Página | 33


27. Luego iniciamos nuestra ruta camel como hacemos normalmente en log de la
consola podemos ver la url de nuestro servicio SOAP

28. Esta url la cargamos en nuestro navegador para ver el endpoint de nuestro wsdl

Copyright © 2020 | Bmind. Página | 34


29. Luego cargamos la ruta de nuestro wsdl en el cliente soap UI

Copyright © 2020 | Bmind. Página | 35

También podría gustarte