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-19

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

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


0. Índice de contenidos.

1. Introducción

En este tutorial se pretende enseñar a crear la primera de las estructura complejas que se pueden implementar en los servicios web : los arrays

Hasta el momento casi todos los servicios web utilizan como parámetros o bien devuelven tipos simples (recordar que venían definidos por el XML Schema) como pueden ser un int, double, String, etc. Pero hay veces en que se necesitan devolver algunas estructuras más complejas como puede ser un array o bien un Java bean

El array es la estructura compleja más utilizada en la programación y se clasifica en base a sus dimensiones :

  • Array unidimensional (Vector) -> Es decir contiene N Elementos
  • Array multidimensional (Matriz) -> Es decir contiene N1 * N2 * ... * Nm donde cada N<num> es una dimensión

Nota : Los arrays casi siempre requieren que se establezca la dimensión durante su construcción, en caso de que no se sepa el tamaño previo normalmente viene dado por su inicialización

Los elementos que componen un array deberían de ser alguno de los considerados como válidos (tipos simples , Java Beans , etc), aunque algunas veces estos son heterogéneos y se convierten en un cajón desastre donde se guarda todo, es decir, donde cada uno de los elementos pertecene a un tipo diferente

En caso de SOAP además permite distinguir dos tipos de arrays :

  • Parcial : Array que no se encuentra totalmente polado por lo que el resto de valores serñan del tipo null
  • Disperso : Array donde se inicializan las posiciones no contiguas del array

La utilización de estos dos tutoriales no será explicado en este tutorial ;-)


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 Axis2ArrayWS


Se creará una estructura del proyecto como la siguiente


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


PASO 3 : Crear una clase Java llamada BasicService


PASO 4 : Crear un método que utilize como parámetro un array

PASO 5 : Crear un método que devuelva un array

Al final la clase quedará de la siguiente forma :


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


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


Introducimos el siguiente texto :

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

Para ello exportar el proyecto como si fuera un JAR pero poniendo de nombre Axis2Array.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/Axis2Array?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 de paso de parámetros


Para ello introducimos tantos <ser:words>TEXTO </ser:words> como elementos que queremos que tenga el array (Recordar secuencialidad)


PASO 4 : Ejecutamos el test y verificamos la respuesta


PASO 5 : Realizamos un test sobre el método que devuelve un array


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 Axis2ArrayWSCliente


Se generará una estructura similar a la siguiente


PASO 2 : Copiamos a nivel de raiz el fichero Axis2Array.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 Axis2Array.wsdl
  • Si Axis2 esta en el Path : wsdl2java -uri Axis2Array.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 de array


7. Conclusiones.

Espero haberos podido ayudar a entender un poco mejor las estructuras complejas de tipo array en 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.

Como habéis podido ver, para poder implementar un servicio web (Cliente y Servidor) hay que realizar muchas acciones, pero por suerte para nosotros se puede decir que cambian muy poquitas cosas a la hora de generar otros servicios web diferentes. Mucho ánimo con esto de la 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: