jueves 4 de junio de 2009

Configurar la página por defecto de Tomcat y de una aplicación web

   Cuando instalamos tomcat y lo arrancamos sin cambiar la configuración por defecto, la página principal que vemos cuando nos conectamos a http://localhost:8080 es la típica que muestra que el servidor se ha configurado correctamente:
If you're seeing this page via a web browser, it means you've setup Tomcat successfully. Congratulations!


   Para nuestras pruebas en casa no hay problema en escribir una url como http://localhost:8080/Mufly-0.2.1/MuflyMain.html, que es justamente la url principal de Mufly, pero si queremos darle un aspecto más profesional y amigable para el usuario hay que evitar el tener que teclear todo eso. Para ello debemos configurar dos opciones.

Cambiar la página inicial del tomcat para que cargue un contexto determinado
   La respuesta la tenemos en las FAQ de Tomcat aunque un poco escondida. Ahí nos indican que en $TOMCAT_HOME/etc/web.xml se encuentra una lista con los archivos que cargará el servidor en caso de que existan y el orden en que lo hará.
El primer paso por tanto es renombrar o eliminar los archivos index.html, index.htm e index.jpg. Y posteriormente crear un archivo estático index.html con el contenido que nos indican, en mi caso sería:
<html>
<head>
<meta http-equiv="refresh" content="0;URL=Mufly-0.2.1/">
</head>
<body>
</body>
</html>
   Con esto conseguimos que escribiendo en el navegador la url http://localhost:8080, el servidor Tomcat nos redireccione automáticamente a http://localhost:8080/Mufly-0.2.1/. Pero aún así no es suficiente.

Definir la página por defecto de un contexto
   Cuando se carga un contexto tenemos que indicar explícitamente la página que queremos cargar. En la mayoría de las ocasiones el usuario no la conoce, y tampoco tiene que hacerlo. La solución pasa por configurar en el archivo web.xml del contexto la página por defecto. En mi caso el archivo es $TOMCAT_HOME/webapps/Mufly-0.2.1/WEB-INF/web.xml y simplemente he añadido lo siguiente:
<welcome-file-list>
<welcome-file>MuflyMain.html</welcome-file>
</welcome-file-list>

   En teoría con esto ya está configurado, simplemente reiniciamos el servidor y debería funcionar pero en mi caso no funcionaba. Las redirecciones o no funcionaban bien o no cargaban la página que yo quería. Me acordé de cuando trabajaba con tomcat hace un par de años, que cada vez que subíamos un .war o hacíamos algún cambio similar había que borrar el directorio de trabajo porque sino los archivos no se desplegaban correctamente ni se leían los cambios. Así que dicho y hecho:
ivan@doraemon:~/apache-tomcat-6.0.18/bin$ ./catalina.sh stop
Using CATALINA_BASE: /home/ivan/apache-tomcat-6.0.18
Using CATALINA_HOME: /home/ivan/apache-tomcat-6.0.18
Using CATALINA_TMPDIR: /home/ivan/apache-tomcat-6.0.18/temp
Using JRE_HOME: /usr

ivan@doraemon:~/apache-tomcat-6.0.18/bin$ cd ..
ivan@doraemon:~/apache-tomcat-6.0.18$ cd work
ivan@doraemon:~/apache-tomcat-6.0.18/work$ rm -rf *
ivan@doraemon:~/apache-tomcat-6.0.18/work$ cd ..

ivan@doraemon:~/apache-tomcat-6.0.18$ cd bin
ivan@doraemon:~/apache-tomcat-6.0.18/bin$ ./catalina.sh start
Using CATALINA_BASE: /home/ivan/apache-tomcat-6.0.18
Using CATALINA_HOME: /home/ivan/apache-tomcat-6.0.18
Using CATALINA_TMPDIR: /home/ivan/apache-tomcat-6.0.18/temp
Using JRE_HOME: /usr
   Y ahora ya sí, simplemente poniendo en la url del navegador http://localhost:8080 llegamos a la página principal de la aplicación.

0 comments:

Publicar un comentario en la entrada