Programación

Web Service Soap con Java EE

SOAP (siglas de Simple Object Access Protocol) es un protocolo estándar que define cómo dos objetos en diferentes procesos pueden comunicarse por medio de intercambio de datos XML. Este protocolo deriva de un protocolo creado por Dave Winer en 1998, llamado XML-RPC. SOAP fue creado por Microsoft, IBM y otros. Está actualmente bajo el auspicio de la W3C. Es uno de los protocolos utilizados en los servicios Web.

Como caso de ejemplo, vamos a crear una aplicación sencilla capaz de realizar una suma.

La librería a utilizar es Metro, que es una implementación de Java: JAX-WS.

Requerimientos de software 

¿Cómo crear el Proyecto? 

Escriba un nombre de proyecto (Utilizar el nombre: «ServicioWebSoap»y deje la ubicación y la carpeta de proyecto como defecto y haga clic en Siguiente

Seleccione Apache Tomcat Server si no está seleccionado y dejar las opciones restantes como defecto y haga clic en Siguiente y posteriormente en Terminar.

Si todo va bien deberían de observar el archivo index.jsp y si ejecutan el proyecto verán el famoso «Hello World!».

Ahora que ya tenemos el proyecto listo, hacer clic derecho en el proyecto y elegir la opción Nuevo -> Java Package (Nombre: ws)

Una vez creado el package ws en el proyecto, nuevamente hacer click derecho en el proyecto y elegir la opción Nuevo -> Otro -> Web Service

 

Elegimos ProgComPy como nombre del Web Service, ws como package y luego Terminar.

 

Darle «Sí» a la pregunta, lo que realiza el Netbeans es agregar la librería Metro y también cambia los archivos de configuración en el archivo web.xml para que el Web Service funcione de forma directa.

Si todo va bien deberían de observar el Web Service ya creado, por defecto queda en la opción Source pero pueden utilizar la opción la Design:

El web service ya está totalmente funcional pero con el método «hello» que lo que hace es recibir una cadena y devuelve el resultado «Hello Word» con la cadena que le envíes.

En éste ejemplo crearemos un método «suma», para dicho efecto utilizar la opción «Add Operation»:

 

Utilizar suma como nombre, float como tipo de retorno y agregar dos parámetros nro1 y nro2 del tipo float.

Ahora deben de codificar el método para que pueda calcular la suma y enviar el resultado, para eso ir a la opción Source y dejar de ésta forma el código fuente:


package ws;

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

/**
 *
 * @author Rodrigo
 */
@WebService(serviceName = "WsProgComPy")
public class WsProgComPy {

/**
 * This is a sample web service operation
 */
 @WebMethod(operationName = "hello")
 public String hello(@WebParam(name = "name") String txt) {
 return "Hello " + txt + " !";
 }

/**
 * Web service operation
 */
 @WebMethod(operationName = "suma")
 public float suma(@WebParam(name = "nro1") float nro1, @WebParam(name = "nro2") float nro2) {
 //TODO write your implementation code here:
 return nro1+nro2;
 }
}

Ahora que ya está todo listo, deben de ejecutar el proyecto, para eso hacer clic derecho sobre el proyecto y luego darle ejecutar, les debería de mostrar el index.jsp con el hello world, pero eso no nos interesa, para comprobar que el web service esté en funcionamiento utilizar la siguiente url: http://localhost:8084/ServicioWebSoap/WsProgComPy?wsdl , quiero aclarar que el localhost y el puerto pueden variar dependiendo del entorno en que estén trabajando, ServicioWebSoap hace referencia a la aplicación web y WsProgComPy hace referencia al nombre del Web Service, ?wsdl: El WSDL nos permite tener una descripción de un servicio web. Especifica la interfaz abstracta a través de la cual un cliente puede acceder al servicio y los detalles de cómo se debe utilizar.

¿Cómo probar el Web Service y la operación suma?

El software que utilizo para hacer pruebas de distintos web services se llama SoapUI  en su edición Open Source, una vez que instalen el programa ir a File -> New SOAP Project:

Project Name: ServicioWebSoap

Wsdl: http://localhost:8084/ServicioWebSoap/WsProgComPy?wsdl

OK

Una vez creado el proyecto, ya vamos a poder probar las distintas operaciones, en éste caso hello y suma.

Para terminar el artículo les dejo un screen para que puedan observar el resultado de la suma:

Como pueden observar, el IDE Netbeans nos facilita prácticamente todo el trabajo. Espero que les pueda ser de utilidad el artículo, Saludos!

Descargar proyecto completo:

Salir de la versión móvil