Web Service Soap con Java EE

| 2014-06-20 | No hay comentarios »

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 

  • Java Software Development Kit: JDK
  • IDE: NetBeans (preferentemente, con todas las características y con Tomcat Application Server)

¿Cómo crear el Proyecto? 

  • Abrir Netbeans.
  • Archivo, Nuevo proyecto, seleccione Java Web de las categorías, luego de Aplicaciones Web en la lista de proyectos, haga clic en Siguiente.

1

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

2

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

3

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

soap

 

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

ws

 

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.

question

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:

defecto

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»:

suma

 

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

soapui

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:

sumasoapui

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:

github-logo

Acerca del autor: Rodrigo Paszniuk

Ingeniero Informático, amante de la tecnología, la música, el ciclismo y aprender cosas nuevas.

Posts Relacionados

  • JSF 2 con Maven – Hola Mundo
  • Web Service Rest (Jersey) con Java EE
  • Acceso a Web Service REST en Android
  • Web Service Rest (RESTEasy) con Java EE



SEGUÍNOS EN FACEBOOK


GITHUB