Iniciar sesión

Crear un webservice usando Jax Ws JBOSS

Rodrigo

Traducido por Rodrigo

Creado 2015-06-28 22:46:33 Modificado 2015-06-28 22:55:07

Java api for xml webservices (Jax-Ws) es la api "standard" o "core", para desarrollar webservices, es parte de la plataforma JEE, por lo tanto si estamos trabajando con un servidor de aplicaciones, no necesitaremos añadir librerías de terceros, como es en el caso de tomcat

En este tutorial, vamos a desarrollar 2 métodos @webservice  dentro de un webservice que retornará un String y un int

este tutorial fue escrito usando el siguiente equipo:

  • Hardware:           laptop Thinkpad X1 carbon Intel I7, 8gb Ram, 256gb SDD
  • OS:                    x86_64 GNU/Linux Ubuntu 15.04
  • Kernel:               3.19.0-21-generic
  • IDE/Text editor:   Eclipse Java EE IDE for Web Developers Version: Luna Service Release 2 (4.4.2)
  • JDK:                   Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
  • Jboss:                 jboss-as-7.1.1.Final
  • Browser:             Versión 43.0.2357.81 Ubuntu 15.04 (64-bit)

 

1.- Creando el proyecto de webservice:

vamos a eclipse file => new => Project... y  escribe dynamic, escoge "Dynamic web project" y click en next

 

aquí escribe el nombre del proyecto "jaxWs" y click en finish

 

 

2.- Creando las clases:

Ahora estamos listos para desarrollar nuestros métodos del webservice, creemos la interfaz con los métodos WS, click new Class y crea la clase JaxWsExample (luego cambiala a interfaz) bajo el package com.rrivero.webservices

package com.rrivero.webservices;

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


/**
 * 
 * @author Rodrigo Rivero
 * @since 10-06-2015
 *
 */

@WebService
public interface JaxWsExample {

	@WebMethod
	@WebResult(name="respuesta")
	int suma(
		@WebParam(name = "n1") int n1,
		@WebParam(name = "n2") int n2
	);
	
	@WebMethod
	@WebResult(name="respuesta")
	String saludo(
		@WebParam(name = "nombre")String nombre
	);
}

ahora crea la implementación para la interface previa bajo el package com.rrivero.webservices.impl

package com.rrivero.webservices.impl;

import javax.jws.WebService;


import com.rrivero.webservices.JaxWsExample;


@WebService(endpointInterface = "com.rrivero.webservices.JaxWsExample")
public class JaxWsExampleImpl implements JaxWsExample {

	@Override
	public int suma(int n1, int n2) {
		return n1+n2;
	}

	@Override
	public String saludo(String nombre) {
		return "Hola "+ nombre;
	}
}

Una vez que hemos creado las clases, añadiremos el web.xml (sólo para ser elegantes, no es realmente necesario)

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
                 xmlns="http://java.sun.com/xml/ns/javaee" 
                 xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
                 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee      
                                                 http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
                id="WebApp_ID" version="3.0">

     <display-name>JaxWs</display-name>
</web-app>

ahora deberíamos tener el siguiente árbol de directorios

3.- Probando el webservice:

Hasta aquí estamos listos, levantemos el server jboss y vamos a http://127.0.0.1:8080/jaxWs/JaxWsExampleImpl?wsdl veremos la siguiente página:

 

ahora vamos a soapUi y probemos el webservice, click derecho en "Projects" -> new soapUi project y peguemos la url de nuestro wsdl, click en ok

  

deberíamos tener la siguiente pantalla, probemos el ws

 


 

Descárgalo en https://drive.google.com/file/d/0BwOqSob-RrBOWm12bm1feUJ6UWs/view?usp=sharing

6.- Conclusión:

Como podemos ver, Jax-Ws es la manera más fácil de entenderse con los webservice java, no necesitamos configuración extra ni librerías de terceros, sólo debemos ir directo a desarrollar los webservices

7.- Links de referencias:

 




comments powered by Disqus