WebServices con Axis y JBoss

0
48093

WEBSERVICE CON JBOSS Y AXIS.

Todo el mundo sabe ya, o al menos entiende la potencia que supone el
uso de los webservices. Poder hacer uso del concepto de RPC y que
además sea independiente de la plataforma y del lenguage de
programación que se use, y que además, estos servicios
puedan ser invocados a través de HTTP o HTTPS hace que se
pueda decir de esta tecnología, que promete ser la próxima
generación en el desarrollo de software. En pocas palabras,
los webservices son llamadas a procedimientos remotos, usando como
protocolo de comunicaciones SOAP sobre HTTP/s y como formato de los
mensajes transmitidos XML, o mejor dicho SOAP-XML o envelopes.
Además, incluye la publicación de la definición
de los servicios en base al WSDL, de forma parecida a como los IDL
definen los servicios en CORBA.

Sin más, porque no se pretende en este tutorial explicar la
tecnología en profundidad, sino enseñarya crear un
servicio WEB usando AXIS y Jboss.

Lo primero es instalar AXIS. ¿ Pero que es AXIS ?. Axis no es
más que una aplicación WEB del proyecto XML de apache
que implementa el protocolo SOAP.

Por
lo tanto, el primer paso será instalar Axis (suponemos que ya
tenemos instalado el servidor Jboss, sino es así, en la
dirección http://labs.jboss.com/portal/download
podemos descargarlo. En el ejemplo estamos usando JBoss 4.0.2).

Nos
vamos a la página de apache Axis http://ws.apache.org/axis/
y seleccionamos la versión a descargar. Como vamos a trabajar
con la versión 1.3, tenéis aquí el enlace
directo a la descarga:

http://apache.gva.es/ws/axis/1_3/
y pulsamos sobre:

Guardamos el fichero en disco, y lo descomprimimos en alguna carpeta
del disco:

Nos fijamos en el directorio webapps. Dentro de este directorio,
existe una carpeta llamada axis. Vamos a cambiar el nombre de esta
carpeta y la vamos a llamar axis.war . Una vez que hayamos
hecho esto, vamos a copiar la carpeta directamente al directorio de
despliegue del jboss. Por defecto, el directorio será:

<RUTA_JBOSS>\server\default\deploy\webapps

Si no existe la carpeta webapps, la creamos.

Probablemente, si tenemos arrancado el servidor de aplicaciones, la
aplicación se estará desplegando en caliente en este
momento.

Podemos comprobar si este despliegue se ha hecho correctamente, en la
página:(Comprobad el puerto por si no coincide con el
vuestro.)

http://localhost:8080/axis/happyaxis.jsp


Illustration
1: Página de instalación correcta de AXIS

Si hemos llegado aquí, ya estamos preparados para hacer
nuestro primer webservice.

Lo primero que haremos será crear un EJB de sesión si
estado, que hará la lógica de negocio de nuestro
webservice, lo que se suele llamar endpoint (la capa
subyacente que realiza el servicio). Para el cliente, esto será
completamente transparente. Supongo que ya estarás deseando
saber que va a hacer nuestro webservice, pues vamos a implementar el
primer euroconversor euros2pesetas, pesetas2euros de la historia vía
SOAP.

Lo primero, definiremos el interfaz que debe cumplir el interfaz
remoto de nuestro EJB. Sencillo, el interfaz:

El interfaz Remoto:

El interfaz Home:

El bean:(sin entrar a discutir sobre la implementación
de la euroconversión, que sin duda se puede hacer mucho mejor)

El descriptor del EJB:

El descriptor del ejb para jboss:(debemos fijarnos en el nombre JNDI
para recordarlo)

Creamos el jar para despliegue del ejb (ejbEuro.jar) con esta
estructura:

  • META-INF/

    • ejb-jar.xml

    • jboss.xml

  • com/…/IEuroConversorEJBHome.class

  • com/…/IEuroConversorEJB.class

  • com/…/IEuroConversor.class

  • com/…/EuroConversorEJBBean.class

Y lo desplegamos (lo
copiamos en <RUTA_JBOSS>\server\default\deploy\ )

Ya tenemos instalado
Axis y creado y desplegado nuestro EJB de endpoint.

¿ Y ahora ?.
Pues ahora vamos a desplegar el webservice haciendo uso de la magia
de Axis.

Para ello, y para
evitar conocer la sintaxis de los ficheros WSDL, usaremos un fichero
intermedio (wsdd webservice deployment descriptor) que nos va a hacer
transparente este tema:

Lo vamos a llamar deploy-euro.wsdd. Los parámetros se
comentan por si solos (fijaros en el nombre JNDI del EJB, ha de ser
el mismo que pusimos en jboss.xml)

Antes de usar la magia de axis, debemos configurar el CLASSPATH del
sistema para que java pueda encontrar las librerías de axis.
Una vez hecho esto, nos vamos al directorio donde está el
fichero deploy-euro.wsdd y lanzamos la siguiente aplicación:


En este momento, ya deberíamos haber desplegado el webservice.

Lo comprobamos en: http://localhost:8080/axis/servlet/AxisServlet

Que nos muestra la lista de servicios desplegados:


Illustration
8: Página de los servicios registrados o desplegados

Nos fijamos en el que acabamos de desplegar: EuroCalculadora, que
tienes dos métodos a los que se puede invocar.

Fijémonos en el wsdl generado:
http://localhost:8080/axis/services/EuroCalculadora?wsdl

Podemos ver ahí, la descripción del webservice, métodos
y parámetros…

Probemos nuestro webservice directamente:

Convertiremos 12 euros a pesetas:

http://localhost:8080/axis/services/EuroCalculadora?method=euros2pesetas&in0=12

El resultado: (1997.0 pesetas …sin entrar a valorar el resultado
que podría ser más ajustado)


Illustration
9: Resultado de la invocación del webservice

Vamos a crear por último un cliente web, que solicite la
conversión al webservice. Debemos asegurarnos, que la
aplicación cliente que quiera invocar al webservice tenga las
librerías de AXIS.

Vamos a hacer un formulario con este aspecto:


Illustration
10: Imágen del JSP de captura de los datos

Veremos el resultado de la conversión de 2000 pesetas a euros:


Illustration
11: Resultado de la invocación

El código del jsp que recoge los parámetros e invoca al
webservice podría ser:

Ya está terminado. ¿ Sencillo verdad ?

No obstante, si necesitas ayuda, ya sabes como encontrarnos…

Dejar respuesta

Please enter your comment!
Please enter your name here