Para crear un servicio de axis2 usando el Developer Studio se pueden usar 2 variantes:
- Si ya tienes el código implementado puedes generar el servicio a partir del mismo.
- Si tienes el WSDL, diseño del servicio, lo puedes usar para generar el esqueleto de la implementación del servicio y de ahí su implementación final.
Veremos las 2 variantes.
Variante 1.
En el Dashboard, la imagen que ven al inicio, damos clic en Axis2 Service Project y verán lo siguiente:
Usaremos la primera opción ya que la segunda es para la variante 2.
Damos siguiente y nos lleva a esta pantalla. Ahí definimos un nombre para el proyecto, el nombre del paquete y el nombre que tendrá la clase donde implementaremos el servicio. En mi caso lo pongo como sigue:
Damos siguiente y veremos una pantalla con algunos valores referentes a Maven, porque el proyecto que se crea es un proyecto de Maven, eso yo lo dejo así y doy Finish.
Ya aquí se nos crea el proyecto y lo pueden ver en la siguiente imagen:
Es sobre esta clase donde debemos implementar los métodos que queramos sean expuestos a través del servicio web. Es importante que tanto los parámetros de entrada y de salida sean clases para que macheen con el estilo document/literal que es la buena práctica recomendada por el WS-I, estándar para la interoperabilidad entre servicios web.
Luego de realizar una implementación sencilla tendríamos lo siguiente:
Donde las clases que estamos usando las he creado y son las siguientes:
Como se ve es una implementación muy sencilla pero que se ajusta a nuestro propósito.
Si queremos que se genere el WSDL de este servicio le damos clic derecho al proyecto y seleccionamos la opción “Generate WSDL” tal y como muestra la siguiente imagen.
Cuando hacemos esto se nos muestra la siguiente ventana.
Y vean que yo le digo que me guarde el WSDL dentro de la carpeta META-INF. Luego le damos OK.
Una vez hecho esto verán el WSDL del servicio.
Lo otro que nos queda es desplegar el servicio como un fichero .aar, para hacerlo podemos dar clic derecho en el proyecto y seleccionar la opción “Export Project as Deployable Archive”.
Ahí ponemos donde queremos guardar el servicio y listo. Ya tendremos el fichero en la ubicación seleccionada.
Variante 2.
Ahora supongamos que ya teníamos el WSDL del Servicio. Usaremos este WSDL.
Realizaríamos el primer paso de la variante 1 pero en este caso seleccionamos la opción que pueden ver en esta imagen.
Ahora seleccionamos donde tenemos el WSDL y le damos un nombre al proyecto.
Eso nos crea el proyecto como pueden ver en la siguiente imagen.
La clase donde debemos implementar es HolamundoSkeleton.java si cambian la clase o desean implementar en otra tengan en cuenta que deben ir al fichero marcado en la siguiente imagen:
Y modificar el nombre de la clase poniendo la clase que realmente contiene la implementación. Esta es la estructura de ese fichero:
Otra cosa que hago es mover el WSDL del servicio para dentro de la carpeta META-INF, eso es importante porque si no después les da un error.
Al inicio la clase que implementa el servicio tiene esta forma:
Luego de implementar la funcionalidad que queremos la clase queda como sigue:
Para crear el .aar seguimos los mismos pasos que en la variante anterior.
En otra entrada veremos como lo podemos desplegar en el Application Server de WSO2.
Creando un Servicio Axis2 en Eclipse usando el Developer Studio de WSO2.