HEADER_lecciones_de_software

Cómo crear cliente Java para consumir servicios implementados en IIB

por David Cuadros, el 6 de febrero de 2019

clientes_java_consumir

Los sistemas bancarios se caracterizan por su heterogeneidad y su necesidad de integración, razón por la cual la arquitectura SOA es un pilar en este tipo de organizaciones.

IBM Integration Bus (IIB) puede conectar diferentes aplicaciones independientes de los protocolos o formatos de mensajes, enrutando, transformando y enriqueciendo los mensajes que se envían en esa comunicación. En una arquitectura SOA, estas funcionalidades favorecen la composición, reutilización y abstracción de los servicios de la organización.

IIB implementa una gran cantidad de servicios de integración que a su vez son consumidos por los diferentes canales y portales desarrollados en Java.   En este manual aprenderemos cómo crear clientes de Java para consumir los servicios de integración implementados en IIB.

1. Generación de Objetos JAX-WS con SoapUI.

Para realizar esta tarea podemos apoyarnos en la aplicación de escritorio SoapUI, para nuestro caso utilizaremos la versión SoapUI 5.3.0.

1.1 Exportar Archivos.

Elegiremos el contrato de servicio que se va a consumir desde Java, para este fin debemos tener cargada la WSDL del servicio en el SoapUI y desde allí exportaremos los artefactos que necesitamos:

Generate  Code>JAX-WS  Artifacts.

contrato_java

1.2 Configurar JAX-WS Artifacts.

En la pestaña “Basic” debemos especificar la ubicación del WSDL, la ruta donde van a quedar los archivos Java, desmarcar el check “Use cached WSDL”, marcar el check “Keep(kepp generated files), como se muestra en la imagen:

JAX_WS_Artifacts

En la pestaña “Custom Args”, en el campo “Tool Args”, ingresaremos la siguiente cadena, para habilitar la lectura del header modificado que se tiene que enviar al bus:

-extension  -XadditionalHeaders

XadditionalHeaders

Podemos copiar los archivos generados en un proyecto java, utilizar la clase que extiende la clase Server, para invocar el servicio SOAP.

1.3 Generar JAX-WS Artifacts.

Si hemos realizado la configuración de manera satisfactoria se generarán los artefactos correspondientes en las rutas mencionadas:

generacion_JAX_WS_ArtifactsImg4

Consideraciones adicionales:

Es necesario que contemos con la ubicación del WSDL, sea expuesto a través de un servidor o en un archivo. Si contamos con un proyecto de SoapUI donde estemos consumiendo el servicio del bus, lo podemos guardar en un archivo.

ubicacion_wsdl

Lo que sigue es que debemos validar que se encuentre correctamente especificada la ruta del wsimport, para ello podemos mirar la opción :

File  > Preferences

wsimport

Más adelante ingresaremos la ruta en la pestaña “Tools” en el campo “JAX-WS WSImport”, usualmente lo encontramos en la carpeta bin del jdk del sistema.

JAX_WS_WSImport

2. Código Java:

Debemos crear un objeto de la clase que extiende a  Service:

objeto_clase_service

Luego debemos implementar todos los objetos que se utilizan como parámetros para el método que invoca al servicio:

Img9

Img10

3. Generar los objetos JAX-WS sin SoapUI:

A continuación debemos ejecutar el siguiente comando:

wsimport.exe, -d, [rutaDestino], -keep, -verbose, -extension, - XadditionalHeaders,  [rutaWSDL]


Donde:

[rutaDestino]  se tiene que reemplazar por el directorio en donde se quiere dejar los archivos .java

[rutaWSDL]  se tiene que reemplazar por la ruta donde se encuentra el archivo .wsdl

Debemos tener en cuenta que es necesario establecer la variable de ambiente path para ejecutar WSimport desde cualquier parte, o sino especificar la ruta completa de la aplicación.

Conclusión:

Con este método paso a paso pudimos conocer una de las formas más adecuadas para consumir servicios expuestos en el IIB a través de un cliente hecho en Java, lo que nos permite integrar diferentes aplicaciones que utilicen este lenguaje como canal de comunicación.

Lo anterior es muy importante para las organizaciones debido a la gran cantidad de servicios de integración desarrollados en IIB y la necesidad que tiene de ser consumidos por los diferentes canales y portales desarrollados en Java.

Nueva llamada a la acción

Lecciones Pragma

Lecciones en Academia Pragma

Aquí encontrarás tutoriales técnicos para que apliques en temas de desarrollo de software, cloud, calidad en software y aplicaciones móviles. 

También puedes visitar nuestro Blog con contenido actual sobre Transformación Digital, Marketing, Conocimiento de Usuario y más. 

Blog

Suscríbete a la academia

Descarga la Guía para trabajar con ambientes IBM Websphere Portal