Está en la página 1de 23

Tema

CONVERSIÓN UNIDADES UTILIZANDO


UN WEB SERVICE SOAP EN JAVA

Tutor
Ing. Eduardo Mauricio Campaña Ortega
MIS.MDU.CCNA.CCIA.
PhD. (c) Ingeniería de Software
PhD. (c) Seguridad Información

Fecha
19/05/2020
WEB SERVICE SOAP JAVA PARA CONVERSIÓN DE
UNIDADES
MARCO TEÓRICO ..........................................................................................................................2
ARQUITECTURA ORIENTADA A SERVICIOS ...............................................................................2
SOAP ....................................................................................................................................2
WSDL ....................................................................................................................................3
WEB SERVICE SOAP EN JAVA ........................................................................................................4
OBJETIVO..................................................................................................................................4
APLICACIÓN SERVIDOR .............................................................................................................4
CREACIÓN DEL PROYECTO ...................................................................................................4
ESTRUCTURA DE LA APLICACIÓN DEL SERVIDOR ................................................................5
CREACIÓN DEL WEBSERVICE................................................................................................5
PROBANDO EL SERVICIO....................................................................................................10
APLICACIÓN CLIENTE ..............................................................................................................11
CREACIÓN DEL PROYECTO .................................................................................................11
ESTRUCTURA ......................................................................................................................13
PRUEBAS ................................................................................................................................18
FUNCIONALIDAD ....................................................................................................................20
CONFIGURANDO DIRECCIONES IP .....................................................................................20
CONCLUSIONES ..........................................................................................................................22
BIBLIOGRAFÍA .............................................................................................................................22

1
MARCO TEÓRICO

ARQUITECTURA ORIENTADA A SERVICIOS


Es un estilo de arquitectura de TI que se apoya en la orientación a servicios. La orientación a
servicios es una forma de pensar en servicios, su construcción y sus resultados. Un servicio es
una representación lógica de una actividad de negocio que tiene un resultado de negocio
específico (ejemplo: comprobar el crédito de un cliente, obtener datos de clima, consolidar
reportes de perforación).

Ilustración 1. ARQUITECTURA ORIENTADA A SERVICIOS (SOA)

El estilo de arquitectura SOA se caracteriza por:


Estar basado en el diseño de servicios que reflejan las actividades del negocio en el mundo real,
estas actividades hacen parte de los procesos de negocio de la compañía.
Representar los servicios utilizando descripciones de negocio para asignarles un contexto de
negocio.
Tener requerimientos de infraestructura específicos y únicos para este tipo de arquitectura, en
general se recomienda el uso de estándares abiertos para la interoperabilidad y transparencia
en la ubicación de servicios.
Estar implementada de acuerdo con las condiciones específicas de la arquitectura de TI en cada
compañía.
Requerir un gobierno fuerte sobre las representación e implementación de servicios.
Requerir un conjunto de pruebas que determinen que es un buen servicio.

SOAP
Es un protocolo estándar que define cómo dos objetos en diferentes procesos pueden
comunicarse por medio de intercambio de datos XML.
SOAP es un paradigma de mensajería de una dirección sin estado, que puede ser utilizado para
formar protocolos más completos y complejos según las necesidades de las aplicaciones que lo
implementan. Puede formar y construir la capa base de una "pila de protocolos de web
service", ofreciendo un framework de mensajería básica en el cual los web services se pueden
construir.

2
Este protocolo está basado en XML y se conforma de tres partes:
➢ Sobre (envelope): el cual define qué hay en el mensaje y cómo procesarlo.
➢ Conjunto de reglas de codificación para expresar instancias de tipos de datos.
➢ La Convención para representar llamadas a procedimientos y respuestas.

El protocolo SOAP tiene tres características principales:


➢ Extensibilidad (seguridad y WS-routing son extensiones aplicadas en el desarrollo).
➢ Neutralidad (bajo protocolo de transporte TCP puede ser utilizado sobre cualquier
protocolo de aplicación como HTTP, SMTP o JMS).
➢ Independencia (permite cualquier modelo de programación).

WSDL
WSDL, las siglas de Web Services Description Language, es un formato del Extensible Markup
Language (XML) que se utiliza para describir servicios web (WS). La versión 1.0 fue la primera
recomendación por parte del W3C y la versión 1.1 no alcanzó nunca tal estatus. La versión 2.0
se convirtió en la recomendación actual por parte de dicha entidad.
WSDL describe la interfaz pública a los servicios Web. Está basado en XML y describe la forma
de comunicación, es decir, los requisitos del protocolo y los formatos de los mensajes necesarios
para interactuar con los servicios listados en su catálogo. Las operaciones y mensajes que
soporta se describen en abstracto y se ligan después al protocolo concreto de red y al formato
del mensaje.
Así, WSDL se usa a menudo en combinación con SOAP y XML Schema. Un programa cliente que
se conecta a un servicio web puede leer el WSDL para determinar qué funciones están
disponibles en el servidor. Los tipos de datos especiales se incluyen en el archivo WSDL en forma
de XML Schema. El cliente puede usar SOAP para hacer la llamada a una de las funciones listadas
en el WSDL.

3
WEB SERVICE SOAP EN JAVA

OBJETIVO
❖ Desarrollar un Web Service básico para ilustrar los pasos generales para su creación.
❖ Mostrar como usar SOAPUI para probar un Web Service.
❖ Hacer una demostración de como crear un Web Service Client

APLICACIÓN SERVIDOR

CREACIÓN DEL PROYECTO


Se crea un nuevo proyecto Java Web -> Web Application

Ilustración 2 selección del tipo de proyecto

Se establece el nombre del proyecto como ConversionUnidadesSoap_Java_Server dentro de una


carpeta creada en el disco C llama CONVERSION_UNIDADES y con otra subcarpeta llamada
SOAP_JAVA

Ilustración 3 información del proyecto

Se establece como servidor de aplicaciones Payara server


4
Ilustración 4 selección del servidor de aplicaciones

No se seleccionará ningun Framework de trabajo para esta aplicación, y selecciona finalizar.


ESTRUCTURA DE LA APLICACIÓN DEL SERVIDOR
Se crean los paquetes modelo y controlador dentro de Source Packages de manera que se
construya una arquitectura n-capas.

Ilustración 5 estructura de la aplicación del servidor

CREACIÓN DEL WEBSERVICE


Dentro del paquete controlador da click derecho y selecciona un nuevo web service.
5
Ilustración 6 nuevo servicio web

Le da un nombre y ubica en el paquete correspondiente.

Ilustración 7 información servicio web

Una vez creado el archivo ConversionUnidades dirigase a la pestaña de design.

6
Ilustración 8 diseño servicio web

Primero borra la operación creada por default.

Ilustración 9 Eliminar operación

Ahora agrega una nueva operación con add Operation y establece una operación para
transformar de pulgadas a centímetros que reciba como parámetro double y con tipo de retorno
double.

Ilustración 10 Agregar operaciones

7
De la misma forma define el método para transformar de pulgadas a centímetros.

Ilustración 11 Agregar operaciones

Una vez agregadas las operaciones regresa a la pestaña de source y tendrá un código como el
siguiente. Donde se pueden distinguir las anotaciones como @WebService que define a la clase
como un servicio web de nombre ConversionUnidades, @WebMethod que define los procesos
que podrán ser invocados desde el cliente utilizando el operationName, @WebParam que
define las propiedades enviadas al webservice.
El código queda de la siguiente manera:

8
Tabla 1. Codificación de los métodos u operaciones en el web service

package ec.edu.espe.controlador;

import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.jws.WebParam;

/**
*
* @author MONSTER
*/
@WebService(serviceName = "ConversionUnidades")
public class ConversionUnidades {

/**
* Web service operation
*/
@WebMethod(operationName = "pulgadasAcentimetros")
public double pulgadasAcentimetros(@WebParam(name = "pulgadas") double pulgadas) {
//TODO write your implementation code here:
return pulgadas*2.54;
}

/**
* Web service operation
*/
@WebMethod(operationName = "centimetrosApulgadas")
public double centimetrosApulgadas(@WebParam(name = "centimetros") double centimetros) {
//TODO write your implementation code here:
return centimetros/2.54;
}
}

9
PROBANDO EL SERVICIO
Para probar el servicio procede a dar click derecho en el mismo, creado en la carpeta de Web
Services y elegimos la opción Test Web Service.

Ilustración 12 Probar servicio

Dentro del navegador desplegará la interfaz mediante la cual puede observar los parámetros
establecidos en los métodos y el botón con el nombre de la función.

Ilustración 13 Probando métodos

Una vez que llene el formulario y da click en el botón podrá ver la respuesta del web service.

Ilustración 14 Invocación de operaciones

10
APLICACIÓN CLIENTE

CREACIÓN DEL PROYECTO


Se selecciona un proyecto de aplicación Java.

Ilustración 15 Nueva clase

Ilustración 16 Nombre clase

11
Una vez creado el proyecto agregará un nuevo web service client como sigue:

Ilustración 17 Nuevo web service cliente

En la siguiente pestaña se colocará la URI del servidor creado anteriormente.

URI:
http://localhost:8080/RMM_ConversionUnidadesSoap_Java_Server/ConversionUnidades?WS
DL

Ilustración 18 URI WSDL

12
ESTRUCTURA
Se crean los paquetes de vista y controlador del cliente para realizar una arquitectura n-capa.

Ilustración 19 Estructura cliente

Se creará un formulario dentro de vista para poder acceder al servicio.

Ilustración 20 JFrame

13
La interfaz se diseña de la siguiente manera.

Ilustración 21 Interfáz

Para llamar a los métodos del webservice se utilizará la opción insert code -> Call web service
Operation, la cual creará el siguiente códgo.

14
Tabla 2. Codificación de la llamada a los métodos u operaciones en el web service desde el cliente

private static double pulgadasAcentimetros(double pulgadas) {


ec.edu.espe.service.ConversionUnidades_Service service = new ec.edu.espe.service.ConversionUnidades_Service();
ec.edu.espe.service.ConversionUnidades port = service.getConversionUnidadesPort();
return port.pulgadasAcentimetros(pulgadas);
}

private static double centimetrosApulgadas(double centimetros) {


ec.edu.espe.service.ConversionUnidades_Service service = new ec.edu.espe.service.ConversionUnidades_Service();
ec.edu.espe.service.ConversionUnidades port = service.getConversionUnidadesPort();
return port.centimetrosApulgadas(centimetros);
}

15
Ilustración 22 Llamada al servicio

Ilustración 23 Operaciones

Una vez implementados los métodos se procede a llamarlos desde la ventada, para ello se
utilizarán los siguientes métodos.

16
Tabla 3. Codificación de la llamada a los métodos u operaciones en el web service desde el cliente

private void btnPulgadasACentimetrosActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
Double pulgadas = Double.parseDouble(txtPulgadas.getText());
Double respuesta= this.pulgadasAcentimetros(pulgadas);
lblCentimetros.setText(respuesta.toString());
}

private void btnCentimetrosAPulgadasActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
Double centimetros = Double.parseDouble(txtCentimetros.getText());
Double respuesta= this.pulgadasAcentimetros(centimetros);
lblPulgadas.setText(respuesta.toString());
}

17
PRUEBAS
Seleccionando la clase ConversionUnidadesControl la cual es la responsable de invocar al
webservice y devolver la respuesta, se crea una prueba unitaria con Junit, para ello va a dar click
derecho en la clase-> tools -> créate unit test

Ilustración 24 Pruebas unitarias

Dentro de la clase creada en la capa de pruebas se inserta el siguiente código como se muestra
en la Tabla 4

Al correr el archivo se debe pasar todas las pruebas como sigue.

Ilustración 25 Resultados pruebas

18
Tabla 4. Codificación de la CAPA de PRUEBAS

@Test
public void testPulgadasAcentimetros() {
System.out.println("pulgadasAcentimetros");
double pulgadas = 8.0;
ConversionUnidadesControl instance = new ConversionUnidadesControl();
double expResult = 20.32;
double result = instance.pulgadasAcentimetros(pulgadas);
assertEquals(expResult, result, 0.01);
// TODO review the generated test code and remove the default call to fail.
if (result != expResult)
fail("The test case is a prototype.");
}

/**
* Test of centimetrosApulgadas method, of class ConversionUnidadesControl.
*/
@Test
public void testCentimetrosApulgadas() {
System.out.println("centimetrosApulgadas");
double centimetros = 2.54;
ConversionUnidadesControl instance = new ConversionUnidadesControl();
double expResult = 1;
double result = instance.centimetrosApulgadas(centimetros);
assertEquals(expResult, result, 0.01);
// TODO review the generated test code and remove the default call to fail.
if (result != expResult)
fail("The test case is a prototype.");
}

19
FUNCIONALIDAD

Se Construye el proyecto y ejecuta, de inmediato aparecerá la interfaz y pruebe su


funcionalidad.

Ilustración 26 Funcionalidad

CONFIGURANDO DIRECCIONES IP
Para realizar la siguiente prueba se configura al servidor con la siguiente dirección ip.

Ilustración 27 ip servidor

20
Una vez configurada la dirección se procede a desplegar el servicio web y verificar la
conexión desde el cliente.

Ilustración 28 cliente

Cambie los valores de la petición en la URI de manera que concuerde con la nueva ip y
corremos de nuevo la aplicación.

Ilustración 29 Funcionalidad

21
CONCLUSIONES

❖ Dentro de Java, es posible realizar un servicio SOAP con WSDL a través de un servidor de
aplicaciones Payara de manera sencilla y sin necesidad de dependencias exernas.

❖ El cliente de SOAP de puede realizar en cualquier implementación ya sea Java, .Net u otros
lenguajes que tengan la capacidad de realizar peticiones web.

BIBLIOGRAFÍA

[1] Creación de Servicios Web SOAP. (2019). Jtech.ua.es. Retrieved 15 October 2019, from
http://www.jtech.ua.es/j2ee/publico/servc-web-2012-13/sesion02-apuntes.html

[2] Aprende a crear WebServices con Java. (2016). Oscar Blancarte - Software Architecture.
Retrieved 15 October 2019, from https://www.oscarblancarteblog.com/2016/12/19/web-
services-con-java-jax-ws/

[3] Largo, E. (2018). Cómo crear un web services SOAP usando JAX-WS en Eclipse.
Programación Web Full Stack. Retrieved 15 October 2019, from
https://www.ecodeup.com/como-crear-un-web-services-soap-usando-jax-ws-en-eclipse/

Coronel Catillo Eric Gustavo. WEB SERVICES SOAP Ejemplo001. www.desarrollasoftware.com

22

También podría gustarte