Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube
JC Mouse Bolivia
Index / Proyectos / Servicio Web SOAP en Java

Servicio Web SOAP en Java

Autor jc mouse lunes, noviembre 21, 2016

En este post vamos a construir un Servicio Web bajo el protocolo SOAP (Simple Object Access Protocol) el cual básicamente se define cómo la comunicación de dos objetos en diferentes procesos por medio de intercambio de datos XML. Nuestro Web Service contara con una sola operación para convertir números decimales a binarios por lo que contara con un parámetro de entrada y uno de salida.

Necesitamos

  • IDE Netbeans 8.x
  • Servidor GlasshFish
  • Navegador Web

Nivel: Intermedio – Avanzado

Tiempo: 30 minutos

Paso 1. Crear el proyecto

Archivo → Nuevo proyecto… → Categoría: Java Web → Proyecto: Aplicación Web → presionamos [Siguiente] para continuar.

A continuación en Nombre de Proyecto, escribimos «WSConversion«, presionamos [Siguiente]. Como servidor, seleccionamos «GlashFish Server«, no utilizamos ningún tipo de framework así que presionamos [Terminar] para crear el proyecto web.

conversion

Paso 2. Servicio Web

Clic derecho sobre el proyecto → new → otros.. → en categoría seleccionamos «Web Service» → en FileTypes seleccionamos «Web Service» y después presionamos [Siguiente]

En nombre del servicio web, escribimos el mismo que el del proyecto «WSConversion«, escribimos también la estructura de paquetes «org.demo.soap«, como utilizamos el servidor GlassFish, debemos activar la opción «Implement Web Service as a Stateless Session Bean«, para finalizar presionamos el botón [Terminar]

soap xml java

Nuestro proyecto queda de la siguiente forma:

webservice

Paso 3. Agregar operaciones

Por defecto al crear el Servicio Web, se agrega una operación llamada Hello (el que podemos borrar en cualquier momento).

SOAP JAVA

Presiona la pestaña «Design» para entrar en modo diseño, aqui podemos observar también la operación Hello pero de un modo gráfico, para eliminarla, solo debemos hacer clic derecho sobre este y elegir «Remove Operation«.

desgin ws

Para agregar una nueva operación, clic en [Add Operation…], en la ventana que aparece, escribimos el nombre de la operación «DecToBin«, escribimos el tipo de valor de retorno, en este caso es un String, así que dejamos como esta. Presionando el boton [Add] podemos agregar parámetros de entrada, para esta operación, solo necesitamos un parámetro llamado «numero» de tipo entero «int«, presionamos [Aceptar] para crear la operación.

operacion soap

Presionamos [Source] para poder ver el código generado, nuestra operación se creo pero esta vacío. debemos escribir el código necesario para su funcionamiento.

package org.demo.soap;
import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.ejb.Stateless;

@WebService(serviceName = "WSConversion")
@Stateless()
public class WSConversion {

    /**
     * Web service operation
     */
    @WebMethod(operationName = "DecToBin")
    public String DecToBin(@WebParam(name = "numero") int numero) {
        //TODO write your implementation code here:
        return null;
    }
}

Nuestra operación DecToBin queda de la siguiente forma:

    @WebMethod(operationName = "DecToBin")
    public String DecToBin(@WebParam(name = "numero") int numero) {
        String binario = "";
        while (numero > 0) {
            binario = numero % 2 + binario;
            numero /= 2;
        }
        return binario;
    }

Paso 4. Test

Nuestro Servicio Web esta listo y debemos probar su funcionamiento. Lo primero que debemos hacer es levantar el Servidor GlassFish, para ello, clic derecho sobre el proyecto → deploy.

Para probar el Web Service, clic derecho sobre nuestro Servicio Web → «Test Web Service», este iniciara en el navegador que tengamos configurado en nuestra PC.

soap test

 

Si escribimos un numero (Ej.: 234) y presionamos el botón «decToBin» tendremos como resultado

decimal a binario

Pero no solo nos muestra el resultado de la operación, sino también nos muestra en formato XML como realizar una consulta y como retorna el resultado.

SOAP Request

<?xml version="1.0" encoding="UTF-8"?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP-ENV:Header/>
    <S:Body>
        <ns2:DecToBin xmlns:ns2="http://soap.demo.org/">
            <numero>234</numero>
        </ns2:DecToBin>
    </S:Body>
</S:Envelope>

SOAP Response

<?xml version="1.0" encoding="UTF-8"?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP-ENV:Header/>
    <S:Body>
        <ns2:DecToBinResponse xmlns:ns2="http://soap.demo.org/">
            <return>11101010</return>
        </ns2:DecToBinResponse>
    </S:Body>
</S:Envelope>

En posteriores post implementaremos proyectos para consumir este servicio web ya sea en java o c#

Enjoy!!!

Tags

Si te ha gustado podrías compartirlo o dejar un comentario. ¡Muchas gracias!
Autor: JC Mouse

Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.

Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye

Enjoy! :)

También Te Podría Interesar

Netbeans «Problemas de Referencia»

Netbeans «Problemas de Referencia»

Cuando nos bajamos un proyecto de internet o cuando nos pasan un código de otra pc (que técnicamente viene siendo lo mis...

Trabajando con varios Activitys

Trabajando con varios Activitys

Hasta este momento utilizamos un solo Activity para desarrollar nuestras aplicaciones, sin embargo es común que las apli...

Conexión a base de datos Oracle con Laravel

Conexión a base de datos Oracle con Laravel

En esta ocasión aprenderemos a conectaros con una base de datos Oracle desde Laravel. Es un tutorial sencillo y cortito,...

ArrayDeque: Cola doblemente terminada

ArrayDeque: Cola doblemente terminada

Una cola doblemente terminada o deque es una estructura de datos lineal que permite insertar y eliminar elementos por am...

4 IDEs online para java y mucho más

4 IDEs online para java y mucho más

A continuación te muestro 4 herramientas online para programadores en lenguaje Java y otros lenguajes de programación co...

Formateo de registros en Excel con JExcel

Formateo de registros en Excel con JExcel

Tenia un problema, me pasaron unos archivos excel con unos cientos de registros (ver imagen más abajo) que exportaron de...

Comparte lo que sabes

Categorias

Últimas entradas

Si trabajas con redes sociales (RRSS) a continuación te muestro tres herramintas gratuitas que te ayudaran a la hora de...

Por lo general se usan transacciones a nivel base de datos y posteriormente se llaman estos a través de procedimientos a...

En este post, aprenderemos como conectar Visual Basic 6 con SQL Server, abrir una tabla, leer su contenido y mostrar est...

Lo que veremos en este post es la configuración del driver para PHP de SQL Server que ha creado Microsoft el cual permit...

Herramientas

Generador de Enlaces a Whatsapp