Está en la página 1de 11

Asignatura Sistemas Informticos III

Tutorial Despliegue de una aplicacin Web en Tomcat 4.1.3


v 1.1 13/06/2006

Equipo Docente de Sistemas Informticos III Departamento de Lenguajes y Sistemas Informticos ETS I. INFORMTICA UNED

Mantenido por carlos@lsi.uned.es

CONTENIDOS
1. Instalacin de Tomcat 4.1.3.......................................................................................... 3 2. Configuracin y administracin de Tomcat 4..1 ......................................................... 3 3. Estructura de Directorios de una Aplicacin Web ....................................................... 6 4. Creacin de un contexto de aplicacin Web en Tomcat .............................................. 7 4.1 A mano, modificando conf/server.xml ............................................. 7 4.2 Mediante la aplicacin manager ........................................................... 8 5. Modificacin del Descriptor de Despliegue (web.xml)................................................ 8 6. Crear un fichero WAR (Web ARchive) ....................................................................... 9 7. Despliegue de la aplicacin Web................................................................................ 10 8. Enlaces de inters. ...................................................................................................... 11

1. Instalacin de Tomcat 4.1.3


Una vez que hemos descomprimido el fichero de instalacin jakarta-tomcat-4.1.30.zip y teniendo como directorio de instalacin $CATALINA_HOME, disponemos en el directorio $CATALINA_HOME/bin 1 de dos programas para arrancarlo y pararlo, startup.bat (en GNU/Linux startup.sh) y shutdown.bat (shutdown.sh), respectivamente. Para arrancarlo, antes debemos establecer la variable JAVA_HOME al directorio de instalacin de alguna Mquina Virtual Java instalada en la mquina. Una vez lo arrancamos, podemos acceder a la pgina de bienvenida en la URL http://localhost:8080.

Fig. 1 Pantalla de bienvenida.

2. Configuracin y administracin de Tomcat 4..1


Una vez que hayamos terminado de instalar nuestro servidor Tomcat, podemos proceder a la configuracin de las caractersticas del mismo. Para ello tenemos dos opciones disponibles: Establecer los parmetros de configuracin escribiendo en los ficheros XML de configuracin del servidor. Utilizar la herramienta de administracin admin que viene incluida con el paquete de instalacin del servidor. Se trata de una aplicacin web que nos permite administrar al servidor de forma "remota". El acceso a la aplicacin de administracin se realiza a travs de la direccin web http://localhost:puerto/admin/. En la pgina inicial de la aplicacin se muestra un formulario en el que se debe proporcionar el nombre de usuario y la contrasea del administrador del servidor (Fig. 2).

A lo largo de la gua se va a seguir la convencin UNIX para designar rutas de ficheros.

Fig. 2 Administracin Login

Para poder acceder a Tomcat como administradores tenemos que modificar el fichero $CATALINA_HOME/conf/tomcat-users.xml, que inicialmente presenta el siguiente contenido. $CATALINA_HOME/conf/tomcat-users.xml
<?xml version='1.0' encoding='utf-8'?> <tomcat-users> <role rolename="tomcat"/> <role rolename="role1"/> <user username="tomcat" password="tomcat" roles="tomcat"/> <user username="both" password="tomcat" roles="tomcat,role1"/> <user username="role1" password="tomcat" roles="role1"/> </tomcat-users>

Introducimos los roles manager y admin. y el usuario admin. con estos dos roles. $CATALINA_HOME/conf/tomcat-users.xml
<?xml version='1.0' encoding='utf-8'?> <tomcat-users> <role rolename="tomcat"/> <role rolename="role1"/> <role rolename="manager"/> <role rolename="admin"/> <user username="tomcat" password="tomcat" roles="tomcat"/> <user username="both" password="tomcat" roles="tomcat,role1"/> <user username="role1" password="tomcat" roles="role1"/> <user username="admin" password="passwordguay1" roles="admin,manager"/> </tomcat-users>

Paramos y arrancamos Tomcat, accedemos a http://localhost:8080/admin, introducimos el usuario admin y su password, y obtenemos la pantalla mostrada en la Fig. 3.

Fig. 3 Administracin - Pantalla principal

Adems de esta herramienta de administracin, Tomcat nos proporciona una herramienta sencilla para la gestin de las aplicaciones Web existentes en el servidor, llamada manager. sta herramienta es accesible a travs de la direccin URL http://localhost:8080/manager/html. Tanto las herramientas admin y manager se pueden acceder desde http://localhost:8080 y luego en los bloques de enlaces de la parte izquierda desde sendos enlaces existentes dentro del cuadro situado en la parte superior izquierda llamado Administration. La herramienta manager permite realizar tareas sobre las aplicaciones Web tales como parar, arrancar o desplegar de nuevo cada una de las aplicaciones, aadir nuevas aplicaciones, etc.

Fig. 4 Manager - Pgina principal

3. Estructura de Directorios de una Aplicacin Web


La especificacin Servlet 2.2 define la estructura de directorios para los ficheros de una aplicacin Web. El directorio superior o directorio raz debera tener el nombre de la aplicacin y definir la raz de documentos para nuestra aplicacin Web. Todos los ficheros debajo de esta raz pueden servirse al cliente excepto aquellos ficheros que estn bajo los directorios especiales META-INF y WEB-INF en el directorio raz. Todos los ficheros privados, como los ficheros class de los Servlets, deberan almacenarse bajo el directorio WEB-INF.

Fig. 5 Estructura de directorios

En la Fig. 5 queda reflejada la estructura de directorios de una aplicacin Web, con los siguientes elementos: Ficheros *.html, *.jsp, ect. - Las pginas HTML y JSP, junto con el resto de ficheros que deben estar visibles para el navegador del cliente (como bibliotecas de JavaScript, hojas de estilo, e imgenes). Es aconsejable dividir estos ficheros en una estructura de subdirectorios adecuada. /WEB-INF/web.xml - Se trata del descriptor de despliegue de la aplicacin Web. Es un fichero XML que describe los Servlets y otros componentes que forman la aplicacin, junto con los parmetros de inicializacin y las reglas de seguridad que queramos que implemente el servidor. Ms adelante describiremos este fichero con ms detalle. /WEB-INF/classes/ - Este directorio contiene los ficheros de clases de Java (y otros recursos asociados) que necesite la aplicacin, incluyendo tanto las clases correspondientes a los Servlets como aquellas que no, y que no estn incluidas en los JAR. Si las clases se organizan en paquetes, debemos reflejar esta jerarqua bajo el directorio /WEB-INF/classes. /WEB-INF/lib/ - Este directorio contiene ficheros JAR que contienen las clases Java (y otros ficheros asociados) que necesita la aplicacin, como bibliotecas externas o drivers JDBC. Para crear una aplicacin Web, empezamos creando esta estructura de directorio. Toma tu fichero de la clase del Servlet compilado y sitala en el directorio WEBINF/classes. Si hemos definido que nuestro Servlet pertenece a un paquete, debemos seguir las reglas estndar de Java y crear los subdirectorios apropiados para que la JVM puedan encontrar nuestras clases. Por ejemplo, si nuestro servlet est definido en un paquete es.uned.informatica.si3.grupo01, deberamos crear la siguiente estructura de directorios:

.../WEB-INF |-classes |-es |-uned |-informatica |-si3 |-grupo01

Una alternativa til para copiar los ficheros de clases al directorio apropiado es configurar nuestro entorno de construccin (mediante Ant o un IDE como Netbeans o Eclipse) para salvar las clases compiladas directamente en los directorios requeridos. Hacer esto nos ahorrar este paso durante el desarrollo.

4. Creacin de un contexto de aplicacin Web en Tomcat


4.1 A mano, modificando conf/server.xml
Para crear un nuevo contexto ServletContext hay que aadir lo siguiente al final (entre las etiquetas <Host> y </Host>) del fichero de configuracin de Tomcat $CATALINA_HOME/conf/server.xml:
$CATALINA_HOME/conf/server.xml <!La aplicacin Web situada en webapps/agenda se acceder mediante la URL http://localhost:8080/agenda --> <Context path="/agenda" docBase="agenda debug=" 0" reloadable=true trusted=false />

En l se indica la siguiente informacin: path (obligatorio): determina la URL con la que la aplicacin Web ser accesible (a partir de la direccin y puerto del servidor Web de la mquina): http://direccin_IP/url_aplicacion_web/ docBase (obligatorio): indica la ubicacin de la aplicacin Web dentro del sistema de ficheros. Puede indicarse una ruta relativa a la carpeta $CATALINA_HOME/webapps, exportada por defecto por Tomcat o absoluta, indicando la ubicacin exacta desde el raz. Ejemplos:
./directorio/carpeta_aplicacion_web carpeta_aplicacio_web #relativa #relativa

/directorio/carpeta_aplicacion_web

#absoluta

debug (opcional): indica a Tomcat cuanta informacin de depuracin debe generarse. Admite valores entre 0" y 9", dando ms informacin cuanto mayor sea su valor (por defecto toma el valor 0", informacin mnima). reloadable (opcional): si est activo, har que Tomcat compruebe si se han producido cambios en los ficheros fuente (.class del subdirectorio classes o .jar del subdirectorio lib), recargando la aplicacin automticamente si los hubiese. Esto reduce el rendimiento, por lo que su valor por defecto es false; sin embargo, resulta muy recomendable activarlo durante el proceso de desarrollo de las pginas. trusted (opcional): indica si la aplicacin Web tiene permiso para acceder a las clases internas de Tomcat. Esta operacin suele estar reservada al administrador admin de Tomcat, por lo que por defecto toma el valor false.

4.2

Mediante la aplicacin manager

Tomcat 4.1.3 y superior incluye una aplicacin web, desplegada por defecto en la ruta /manager, que permite desplegar y eliminar aplicaciones web en un servidor Tomcat ya iniciado sin tener que reiniciarlo.

5. Modificacin del Descriptor de Despliegue (web.xml)


El descriptor de despliegue viene definido por el elemento web-app en el fichero web.xml. Abajo aparece la estructura de un descriptor de despliegue mnimo. $CATALINA_HOME/webapps/<webApp_name>/WEB-INF/web.xml
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"> <web-app> <!-- Tus definiciones van aqu </web-app> -->

Insertamos nuestros descriptores de despliegue de servlets entre las etiquetas


<web-app> y </web-app> de este fichero. El descriptor de despliegue de un servlet

debe incluir las siguientes etiquetas (en este orden): $CATALINA_HOME/webapps/<webApp_name>/WEB-INF/web.xml


<servlet> <servlet-name>nombre</servlet-name> <servlet-class>package.nombre.MiClass</servlet-class> </servlet>

Tambin estn permitidas antes de la etiqueta de cierre </servlet> varias etiquetas opcionales, que definen las propiedades de ejecucin del servlet. Estas etiquetas definen propiedades como parmetros de inicializacin, si el servlet debera o no cargarse en el inicio, los roles de seguridad, y otras propiedades. La correspondencia entre el nombre del servlet y la manera de accederlo a travs de una URL es realizada mediante el elemento servlet-mapping. En el fichero web.xml, esta correpondencia se realiza de la siguiente manera. Notar que el servlet-name debe coincidir con el sub-elemento servlet-name del elemento servlet que hemos visto arriba. Esta suele ser una habitual fuente de errores al principio. $CATALINA_HOME/webapps/<webApp name>/WEB-INF/web.xml
<servlet-mapping> <servlet-name>nombre</servlet-name> <url-pattern>pattern</url-pattern> </servlet-mapping>

Abajo aparece un descriptor de despliegue completo, al cul se accedera mediante http://<host>:<port>/<contextApp>/SampleServlet. $CATALINA_HOME/webapps/< contextApp >/WEB-INF/web.xml
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"> <web-app> <servlet> <servlet-name>RequestDetails</servlet-name> <servlet-class>org.stevengould.javaworld.RequestDetails</servlet-class> </servlet> <servlet-mapping> <servlet-name>RequestDetails</servlet-name> <url-pattern>SampleServlet</url-pattern> </servlet-mapping> </web-app>

6. Crear un fichero WAR (Web ARchive)


Un fichero WAR (Web ARchive) es simplemente un fichero JAR, pero con extensin distinta para indicar que se trata de una aplicacin Web. Ya hemos visto la estructura de directorios requerida para una aplicacin Web. Para crear un WAR para nuestra aplicacin, vamos al directorio raz que contiene nuestra aplicacin Web y tecleamos el siguiente comando:
jar cv0f myWebApp.war .

Para activar la caracterstica de compresin omitiremos la opcin 0.


jar cvf myWebApp.war .

Las ejecuciones anteriores crearn un fichero WAR llamado myWebApp.war.

7. Despliegue de la aplicacin Web


El paso final para poder disponer de la aplicacin Web consiste en el despliegue efectivo de la misma. Hasta ahora hemos visto cmo se instala Tomcat, qu facilidades ofrece para la administracin y el manejo de aplicaciones Web, la estructura de directorios y ficheros de una aplicacin Web, cmo especificar un nuevo contexto para una aplicacin Web, cmo definir un descriptor de despliegue, cmo crear un archivo WAR, y en este apartado vamos a ver qu formas existen de realizar el despliegue efectivo de una aplicacin Web. Para que pueda ser ejecutada, una aplicacin web debe ser desplegada en un contenedor de servlets. Para realizar esto en Tomcat existen varias posibilidades: Copiar la jerarqua de directorios completa sin empaquetar dentro de un subdirectorio del directorio $CATALINA_HOME/webapps/. Tomcat asignar a nuestra aplicacin una ruta de contexto basada en el nombre del subdirectorio que hayamos escogido. Se trata de la alternativa ms rpida y fcil durante el desarrollo. Hay que asegurarse de reiniciar Tomcat despus de instalar o actualizar nuestra aplicacin. Copiar el fichero WAR en el directorio $CATALINA_HOME/webapps/. Cuando Tomcat se inicia, descomprime automticamente el fichero WAR y la ejecuta en esta forma. Esta variante se utiliza habitualmente para instalar una aplicacin adicional en una instalacin ya existente de Tomcat. Para actualizar la aplicacin es necesario tanto reemplazar el fichero WAR como borrar el directorio descomprimido creado por Tomcat, y, adems, reiniciar Tomcat, para poder reflejar los cambios. Usar el administrador de aplicaciones web includo en Tomcat para desplegar y eliminar aplicaciones web. Tomcat incluye una aplicacin web, desplegada por defecto en la ruta /manager, que permite desplegar y eliminar aplicaciones web en un servidor Tomcat ya iniciado sin tener que reiniciarlo. Usar el administrador de tareas de Ant en el script de compilacin. Tomcat 5 incluye un conjunto de definiciones propias de tareas para la herramienta Ant que nos permite automatizar la ejecucin de comandos en el administrador de aplicaciones web. La manera de desplegar nuestra aplicacin web dentro de otro contenedor de servlets es especfica de cada contenedor, pero todos los contenedores compatibles con la especificacin de la API Servlet (versin 2.2 o superior) estn obligados a permitir ficheros WAR. Tenemos que tener en cuenta que el resto de contenedores no estn obligados a aceptar un estructura de directorios descomprimida (como hace Tomcat), o a proporcionar mecanismos para compartir bibliotecas, pero estas caractersticas estn normalmente disponibles. Las aplicaciones web presentes en el directorio raz sern desplegadas si la propiedad "deployOnStartup" del host es true. El proceso de despliegue de una aplicacin al iniciar Tomcat es el siguiente: 10

1) Las declaraciones existentes en el fichero XML de contexto se despliegan en primer lugar. 2) Aquellas aplicaciones web descomprimidas que no estn referenciadas en las declaraciones del fichero XML de contexto sern desplegadas a continuacin; si tienen un fichero WAR asociado y es ms reciente que la aplicacin web descomprimida, el directorio descomprimido se borrar y la aplicacin web se volver a desplegar a partir del fichero WAR. 3) Se despliegan las aplicaciones almacenadas en ficheros WAR. 4) Para cada aplicacin desplegada, se crear el descriptor XML de contexto (distinto al descriptor de despliegue) correspondiente a menos que ya exista uno. Si el servidor Tomcat ya est iniciado y la propiedad "autoDeploy" tiene el valor true, el servidor intentar desplegar y actualizar las aplicaciones web dinmicamente, cuando sea necesario. El servidor necesitar en este caso tener un proceso en segundo plano que se encargue de realizar este trabajo (que es lo que ocurre por defecto). Este proceso incluye: Despliegue de ficheros WAR que se copien al directorio de aplicaciones del servidor. Despliegue de aplicaciones web descomprimidas que se copien al directorio de aplicaciones del servidor. Re-despliegue de aplicaciones web desplegadas a partir de un fichero WAR cuando dicho fichero se actualice: se eliminar la aplicacin descomprimida, y el fichero WAR se volver a descomprimir de nuevo. Esto no pasar si el servidor est configurado para que los ficheros WAR no se descompriman, de modo que la aplicacin web simplemente se volver a desplegar. Volver a desplegar una aplicacin si el fichero /WEB-INF/web.xml se actualiza. Volver a desplegar una aplicacin web si el fichero XML de contexto desde el que se ha desplegado se actualiza.

8. Enlaces de inters.
Eclipse http://www.eclipse.org/ Desplegar Servlets y Aplicaciones Web en Tomcat y WebLogic Server http://www.programacion.com/articulo/desp_servlets/ HOW-TO: Instalacin y configuracin de Tomcat 5 http://www.agiles.org/index.php?module=subjects&func=printpage&pageid=21&scope =all Java http://java.sun.com Netbeans http://www.netbeans.org/ Primeros pasos con Tomcat http://bulma.net/body.phtml?nIdNoticia=1888 Software proporcionado por Sistemas Informticos III http://www.ii.uned.es/cdrom/2004-05/mat-doc-2-ciclo/asig/quinto/sisinfiii/software/ Tomcat http://jakarta.apache.org/tomcat/

11

También podría gustarte