Tuesday, October 2, 2012

Crear servicio con Tomcat + Axis2 + Testing con soapUI

A continuación explico como implementar un Hello World utilizando las herramientas Tomcat (para volcar servlets), Axis2 (encargada del soporte para creación de los servicios web) y soapUI (para el testeo del servicio). Previamente claro, se necesita haber tenido el JDK de Java.
Probado en Win Xp y 7.

Instalación y configuración:

  • Instalar Apache Tomcat. En este caso usé la última versión hasta el momento, es decir, la 7.
  • Descargar Axis2 tanto la Binary distribution como la War distribution. La primera contendrá una carpeta y la otra un archivo .war que necesitaremos para el binding con el Tomcat.
  • Descomprimir la Binary distribution de Axis2 en algún lado, lo mismo para el JDK que tuvo que haber sido instalado.
  • Setear las variables de entorno JAVA_HOME y AXIS2_HOME a los correspondientes directorios (JAVA_HOME con valor del directorio del JDK). 
  • Copiar el archivo 'axis2.war' a la carpeta webapps que se encuentra en el directorio donde fue instalado el Tomcat. Si el Tomcat está corriendo, entonces luego de haber pegado el archivo debería aparecer una carpeta con el nombre 'axis2'.
  • Ejecutar 'directorio_axis2\bin\axis2server.bat' que dará inicio al Axis2 (teniendo ya el Tomcat corriendo).
  • Para chequear que esta funcionando todo, desde el browser ir a 'localhost:8080/axis2' donde podremos ver el servicio Version corriendo. Dandole click al título del servicio accedemos al WSDL.
  • Instalar soapUI.

Hello World:

Tiramos una clase java tradicional HelloWorld.java:
public class HelloWorld{
               public String getData(){
               return "Hello World";
}
}

Compilamos con javac desde la consola (javac HelloWorld.java) y obtenemos nuestro HelloWorld.class precompilado.
Ahora necesitamos crear una carpeta en el mismo directorio que nuestro .class llamada 'META-INF' y dentro de la misma crear un 'service.xml' con la siguiente data:


<service name="Axis 2 HW">
<Description>
Axis2 hello world
</Description>
<messageReceivers>
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
</messageReceivers>
<parameter name="ServiceClass" locked="false">HelloWorld</parameter>
</service>


Debemos comprimir en formato zip tanto la carpeta META-INF (con el xml dentro) y el HelloWorld.class. Luego renombramos el archivo a .aar. Tenemos el servicio creado.
Pegamos el servicio en directorio_Tomcat\webapps\axis2\WEB-INF\services , ya tenemos nuestro servicio activado.

Testing:
 Como ya dije, si entramos a localhost:8080/axis2 podremos tener acceso a la lista de servicios activos y si damos click en el título, tenemos acceso al wsdl del mismo.
Abrimos soapUI y creamos un nuevo proyecto pegando la dirección de nuestro wsdl.
Aparecerá la única operación de nuestro servicio: 'operate'. Si le damos doble click, podremos testearla dando click al botón verde.

Si hubieramos hecho algo con pasaje de parametros, al momento de testear aparecerán símbolos de pregunta o algún valor por default con el cual podremos cambiarlo y testear el servicio web.

Eclipse EE + Tomcat + Axis2:
Dejo una guía muy buena para trabajar con el WTP de Eclipse, Axis2 y Tomcat.
http://www.softwareagility.gr/index.php?q=node/21

Saludos.

Tuesday, August 14, 2012

Gridgain 4.2.1 + Netbeans 7.2 en Ubuntu 11.04

Hola, estreno este blog como un lugar donde tirar cosas que voy haciendo para que me sirva no solo a mi por si en algún momento necesito esta información sino también para aquel que sin querer y buscando información terminó accidentalmente aquí.

Entonces, paso a explicar paso a paso como setear la herramienta para map reduce Gridgain 4.2.1 usando el IDE Netbeans 7.2 en Ubuntu.

Una vez obtenido y descomprimido Gridgain (www.gridgain.com) lo primero va a ser setear las siguientes variables desde la consola:

export JAVA_HOME=/usr/lib/jvm/java-6-sun/
export GRIDGAIN_HOME=/home/okcerk/Escritorio/gridgain

*Nota: para no tener que hacer eso siempre, conviene editar el archivo /.bashrc y agregarle dichas lineas al final del mismo.

Asi luego solo nos hará falta ejecutar uno o tantos nodos como quisieramos (uno por terminal) simplemente ejecutando: bash GRIDGAIN_DIRECTORY/bin/ggstart.sh


Ahora simplemente trabajaremos con un ejemplo de los que trae el paquete de GG (un Hello World or whatever). Importamos las librerías necesarias: Add JAR/Folder y agregamos:
GRIDGAIN_DIRECTORY/gridgain-4.2.1e.jar
GRIDGAIN_DIRECTORY/libs/ (toda la carpeta)

Solo nos falta setear la variable GRIDGAIN_HOME en Netbeans. Vamos a las propiedades del proyecto y en la pestaña Run vamos a VM options - Customize: Agregamos la variable GRIDGAIN_HOME y en valor el directorio de la carpeta Gridgain.

Se compila y se corre. La ejecución en NB corre como un nodo más.