Web Services con Metro 2.1 y Apache Tomcat 7

En este blog hemos trabajado siempre con Axis2 el framework de apache para el desarrollo de web services. En el presente manual vamos a aprender a configurar JAX-WS (Metro), la pila de web services creada por Sun. Además, utilizaremos Tomcat como contenedor y no GlassFish como es habitual.

Requisitos (versiones a fecha de hoy):

Una vez descargados los archivos anteriores, procederemos a descomprimirlos cada uno de ellos con la aplicación adecuada tal y como podemos observar a continuación.

Metro:

aitor@BlogDeAitor:~$ unzip metro-standalone-2.1.1.zip

Ant:

aitor@BlogDeAitor:~$ tar zxvf apache-ant-1.8.2-bin.tar.gz

Tomcat:

aitor@BlogDeAitor:~$ tar zxvf apache-tomcat-7.0.22.tar.gz

JDK:

aitor@BlogDeAitor:~$ tar zxvf jdk-7u1-linux-x64.tar.gz

Una vez tenemos todos los paquetes descomprimidos, crearemos los directorios que van a contenerlos para y moveremos su contenido a ellos.

 aitor@BlogDeAitor:~$ sudo mkdir /usr/local/ant-1.8.2
 aitor@BlogDeAitor:~$ sudo mkdir /usr/local/tomcat-7.0.22
 aitor@BlogDeAitor:~$ sudo mkdir /usr/local/jdk7u1

 aitor@BlogDeAitor:~$ sudo mv apache-ant-1.8.2/* /usr/local/ant-1.8.2/
 aitor@BlogDeAitor:~$ sudo mv apache-tomcat-7.0.22/* /usr/local/tomcat-7.0.22/
 aitor@BlogDeAitor:~$ sudo mv jdk1.7.0_01/* /usr/local/jdk7u1/

En este punto, ya tenemos todo listo para proceder a la configuración de Tomcat para hacer uso de Metro. Para ello, dentro del directorio donde hemos descomprimido metro, hay un fichero xml que nos va a permitir instalar metro en tomcat y en versiones anteriores de glassfish en las cuales metro no venia ya preinstalado.  Para poder realizar este paso, va a ser esencial utilizar Apache Ant y, para ello, necesitamos tener configurada la variable de entorno JAVA_HOME, de no ser así, obtendriamos el siguiente error:

Error: JAVA_HOME is not defined correctly.
 We cannot execute java

Para solucionar este error, será necesario introducir el siguiente comando.

aitor@BlogDeAitor:~$ export JAVA_HOME=/usr/local/jdk1.7.0/

Ahora sí, procederemos a instalar metro en nuestro tomcat. Para ello introduciremos el siguiente comando: $ANT_HOME/bin/ant -Dtomcat.home=$CATALINA_BASE -f ~/metro/metro-on-tomcat.xml install

Dónde:

  • $ANT_HOME es el directorio donde hemos instalado ant (/usr/local/ant en nuestro caso).
  • $CATALINA_BASE es el directorio dónde hemos instalado Tomcat (/usr/local/tomcat/ en nuestro caso)

Obteniendo algo parecido a lo mostrado a continuación:

aitor@BlogDeAitor:~$ /usr/local/ant/bin/ant -Dtomcat.home=/usr/local/tomcat/
-f /home/aitor/metro/metro-on-tomcat.xml install
 Buildfile: /home/aitor/metro/metro-on-tomcat.xml
catalinahome-test:
init:
uninstall:
update-catalina-props:
test-api:
check-api:
install-api-tomcat5:
install-api-tomcat6:
 [mkdir] Created dir: /usr/local/tomcat/endorsed
 [copy] Copying 1 file to /usr/local/tomcat/endorsed
install-api-tomcat:
install:
 [echo] Installing Metro 2.1.1 for /usr/local/tomcat/ ...
 [mkdir] Created dir: /usr/local/tomcat/shared/lib
 [copy] Copying 4 files to /usr/local/tomcat/shared/lib
 [echo] ... installation complete.
BUILD SUCCESSFUL
 Total time: 4 seconds

Con este comando, copiamos además todos los .jar que tenemos en el directorio metro/lib al directorio $CATALINA_HOME/shared/lib.

Inicio y detención automáticos de tomcat (opcional)

Si lo deseamos, podemos crear un script de inicio para que se exporten automáticamente las variables de entorno al iniciar el sistema y para que tomcat sea arrancado sin necesidad de iniciar sesión. Para ello vamos a crear unscript de inicio en /etc/init.d llamado tomcat.

aitor@BlogDeAitor:~$ sudo vim /etc/init.d/tomcat

y en él vamos a incluir el siguiente contenido:

## Tomcat
## Script Inicio/Detención/Reinicio automatico

case "$1" in
'start')
        echo "Tomcat: Creando variables de entorno..."

        export JAVA_HOME=/usr/local/jdk7u1/
        export PATH=$PATH:$JAVA_HOME/bin

        echo "Tomcat: Iniciando Apache Tomcat..."
        /usr/local/tomcat-7.0.22/bin/catalina.sh start

        echo
;;
'stop')
        echo "Tomcat: Deteniendo Servicios..."
        /usr/local/tomcat-7.0.22/bin/catalina.sh stop
;;
'restart')
        echo "Tomcat: Reiniciando servicios "

        $0 stop
        $0 start
;;
*)
echo "Uso: tomcat {start / stop / restart}"

exit 1

esac
 
exit 0

Una vez creado este script, debemos concederle permisos de ejecución:

aitor@BlogDeAitor:~$ sudo chmod a+x /etc/init.d/tomcat

y, finalmente, lo instalamos en los runlevels necesarios para que se inicie y se detenga de forma automática. Para ello vamos a utilizar el comando update-rc.d. Una forma alternativa seria crear los enlaces de forma manual (con ln) pero con este comando obtenemos el mismo resultado de forma más rápida.

aitor@BlogDeAitor:~$ sudo update-rc.d tomcat defaults

A partir de este punto, al iniciar el sistema nuestro tomcat se ejecutará automáticamente y, al detenerlo, éste será detenido.

Posts relacionados:

Anuncios

3 Responses to Web Services con Metro 2.1 y Apache Tomcat 7

  1. Pingback: Web Services con Axis2, Apache Tomcat y Netbeans « Aitor Rigada

  2. Pingback: Instalación Axis2 « Aitor Rigada

  3. Pingback: Configurar SSL para Tomcat 7 en Linux « Aitor Rigada

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: