Víctor Javier Madrid

Consultor tecnológico de desarrollo de proyectos informáticos.

Ingeniero en Informática con especialidad en Ingeniería del Conocimiento *.

Ver todos los tutoriales del autor

Fecha de publicación del tutorial: 2010-07-28

Tutorial visitado 6.462 veces Descargar en PDF
Crear una estructura compleja del tipo JavaBean en un servicio web Axis2

Crear una estructura compleja del tipo JavaBean en un servicio web Axis2


0. Índice de contenidos.

1. Introducción

En este tutorial se pretende enseñar a crear otra de las estructuras complejas que se pueden implementar en los servicios web : los tipos compuestos ( En Java serán los JavaBeans)

Por regla general en la programación no solo se limita al uso de los elementos que facilita el lenguaje, sino que en muchos casos se permite la creación de elementos propios.

Un JavaBean es un componente Java que se utiliza para encapsular varios objetos en un único objeto, por asi decirlo haría las veces de una estructura de registro de C, es decir, un tipo que esta compuesto por otro tipos o por tipos simples.

Para que un objeto Java sea considerado un JavaBean requiere cumplir una serie de normas :

  • Disponer de un contructor sin argumentos
  • Sus atributos deberían de ser accesibles mediente métodos SET / GET
  • Seguir las convenciones de nomenclatura estándar (nombre clase, nombres atributos, etc.)
  • Implementar de serializable

2. Entorno.

El tutorial está escrito usando el siguiente entorno:


3. Instalacion.

Para la realización de este tutorial ser requiere :

1) Tener instalada servidor de aplicaciones Apache Tomcat (En mi caso uso la versión 7.0)

2) Tener la versión binaria de Axis2 (En mi caso uso la versión 1.5.1) descargada y descomprimida en un directorio

3) Tener la versión WAR de Axis2 (En mi caso uso la versión 1.5.1) desplegada en el Tomcat

4) Tener instalada la herramienta SOAP UI

Nota : Utilizaremos para su desarrollo la herramienta Eclipse


4. Crear el Servidor

PASO 1 : Crear un proyecto Java llamada Axis2JavaBeanWS


Se creará una estructura del proyecto como la siguiente


PASO 2 : Crear el paquete "com.acme.ws.servidor" sobre la carpeta src


PASO 3 : Crear una clase Java en el paquete anterior llamada Persona que será el JavaBean

Crear una clase con 3 atributos : nombre, apellidos y email.

Nuestro proyecto quedaría asi :


PASO 4 : Crear una clase Java llamada BasicService en el paquete anterior

En este caso se definirán dos métodos que serán los servicios disponibles para los clientes.

En el método "login" se devolverá una cadena con los atributos de nombre y email indicando como que se ha autenticado sin probemas.

En el método "loginEmail" se devolverá un JavaBean que se inicializará si y solamente si coincide el email que se pasa como parámetro

Nuestro proyecto quedaría asi :


PASO 5 : Crear la carpeta META-INF a nivel de la carpeta src


PASO 6 : Crear dentro de la carpeta META-INF el descriptor de servicio : services.xml


Introducimos el siguiente texto :

Nota : Recordar añadir la línea inicial : <?xml version="1.0" encoding="UTF-8"?>

PASO 8 : Crear el fichero de ensamblado AAR (Axis ARchive)

Para ello exportar el proyecto como si fuera un JAR pero poniendo de nombre Axis2JavaBean.aar

Nota : No incluir .classpath ni .project


Arrancar Tomcat si esta parado

PASO 9 : Copiar el fichero AAR en <CATALINA_HOME>\webapps\axis2\WEB-INF\services


PASO 10 : Verificar en la consola de Tomcat la inclusión de este servicio


PASO 11 : Verificar el servicio desde la consola de administracion de Axis : http://localhost:8080/axis2/services/listServices


PASO 12 : Obtenemos el WSDL del servicio : http://localhost:8080/axis2/services/Axis2JavaBean?wsdl


Guardamos el fichero anterior que vendrá dado en formato XML por formato WSDL


5. Probar el servidor con SOAP UI

PASO 1 : Cargamos la herramienta


PASO 2 : Creamos un proyecto nuevo con la URL del WSDL anterior


PASO 3 : Realizamos un test sobre el método "loginEmail"


Para ello introducimos el siguiente email que será reconocido por el servidor : <ser:email>admin@admin.com</ser:email>


PASO 4 : Ejecutamos el test y verificamos la respuesta


PASO 5 : Realizamos un test sobre el método "login"


PASO 6 : Ejecutamos el test y verificamos la respuesta


Con esto tendremos probado nuestro Servidor ;-)


6. Crear el cliente

PASO 1 : Creamos un proyecto Java llamada Axis2JavaBeanWSCliente


Se generará una estructura similar a la siguiente


PASO 2 : Copiamos a nivel de raiz el fichero Axis2JavaBean.wsdl


PASO 3 : Generamos el Stub del cliente con la herramienta Axis2

Para ellos nos situamos por consola en el directorio del proyecto y ejecutamos la siguiente instrucción

  • Si Axis2 NO esta en el Path : %AXIS2_HOME%\bin\wsdl2java -uri Axis2JavaBean.wsdl
  • Si Axis2 esta en el Path : wsdl2java -uri Axis2JavaBean.wsdl

PASO 4 : Refrescamos el proyecto

Se habrán creado dos clases que nos permitirán comunicarnos con el servidor


PASO 5 : Incluir las librerías de Axis2

Con el botón derecho del ratón sobre el proyecto Properties -> Java Build Path , pestaña de Libraries y pulsar sobre "Add Externar JARs"


PASO 6 : Crear un paquete "com.acme.ws.cliente"


PASO 7 : Crear una clase PruebaCliente.java

Esta clase dipondrá de dos métodos para realizar la llamada a los dos servicios

PASO 8 : Ejecutar la clase


Con esto habriamos conseguido tener un servicio web en el que se utiliza la estructura compleja del tipo JavaBean tanto de entrada como de salida.


7. Conclusiones.

Con estas pequeñas aportaciones espero estar ayudar a entender un poco mejor las estructuras complejas en SOAP. En el caso de este tutorial se ha utilizado algo muy habitual cuando uno envía una estructura propia usando SOAP .Se ha tratado de que el ejemplo sea lo más claro posible para facilitar su entendimiento sin entrar en ningúna complejidad a la hora de crear los servicios proporcionados.

Ya casi tenemos dominado esto de las comunicación SOAP ;-)

A continuación puedes evaluarlo:

Regístrate para evaluarlo

Por favor, vota +1 o compártelo si te pareció interesante

Share |
Anímate y coméntanos lo que pienses sobre este TUTORIAL: