martes, 10 de enero de 2012

Instalar apache archiva en Jetty 7

Ya que logré instalar Jetty 7 en Ubuntu y que me gusta mucho trabajar con maven, es el momento de actualizar mi guía de como instalar archiva en Ubuntu, pero está vez, dentro de un Jetty 7 que ya está funcionando.

Antes de seguir debemos aclarar que [jetty.home] se refiere a el sitio donde está instalado el servidor o lo que sea que tengan configurado en la variable de entornor JETTY_HOME (generalemente definida en el archivo /etc/default/jetty), pueden consultar mi post anterior sobre instalar jetty para más detalles.

Lo pasos a seguir:
1. Configuramos jetty, sino lo está ya, para hacer la instalación en caliente usando ContextProvider, para esto necesitamos editar el archivo jetty.xml
sudo nano [jetty.home]/etc/jetty.xml
El siguiente ejemplo lo armé usando los distintos xml que vienen incluidos en la carpeta etc de jetty

Hay que detener y reiniciar jetty para que los cambios sean efectivos, usaré el modo de supervisión para monitorear que todo está bien con la configuración nueva.
sudo /etc/init.d/jetty stop
sudo /etc/init.d/jetty supervise

2. Descargamos el archivo war de apache archiva (sitio de descargas).
cd ~/Downloads
wget -c http://mirrors.sonic.net/apache//archiva/binaries/apache-archiva-1.3.5.war
Nota: al descargar recuerden comprobar el md5 del archivo war de archiva http://www.apache.org/dist/archiva/binaries/apache-archiva-1.3.5.war.md5, es una buena práctica y además por errores de la red tuve que volver a bajar el archivo de otro mirror. 

 3. Creamos un "deployment descriptor" en formato xml, pueden tomar como ejemplo el siguiente texto y ajustar lo que crean conveniente.

Pueden comparar este descriptor con el que se crea para tomcat 5.5 y 6, según la documentación de archiva: http://archiva.apache.org/docs/1.3.5/adminguide/webapp.html


4. Colocamos el archivo war en la carpeta [jetty.home]/webapps
sudo cp ~/Downloads/apache-archiva-1.3.5.war  [jetty.home]/webapps

5. Colocamos el "deployment descriptor" en la carpeta [jetty.home]/contexts
 sudo cp archiva-context.xml [jetty.home]/contexts

Usando la capacidad de jetty de hacer instalaciones en caliente (hot deployment), configurada en el primer paso, veremos nuestra aplicación funcionando de inmediato, si todo va bien.

Si modificamos el archivos de contexto jetty removerá y reinstalará la aplicación y si lo borramos jetty eliminará el contexto desinstalando la aplicación.

Solo nos queda probar que funciona ingresando en el navegador web a http://localhost/archiva

Finalmente les dejo este enlace, donde dan algunos detalles de lo que hace falta para que archiva funcione en jetty, puede que les resulte de ayuda.

Hasta la proxima.