trabajando con tomcat

Upload: ecosolid

Post on 04-Feb-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/21/2019 Trabajando Con Tomcat

    1/9

    Instalar nuevas aplicaciones en Tomcat.Fecha de creacin: 01.08.2001

    Revisin 1.0.3 (05.03.2003)

    Alberto Molpeceres (al AT javahispano DOT org)

    http://www.javaHispano.org

    Copyright (c) 2002, Alberto Molpeceres. Este documento puede ser distribuido solo bajo los

    trminos y condiciones de la licencia de Documentacin de javaHispano v1.0 o posterior (la ltima

    versin se encuentra en http://www.javahispano.org/licencias/).

    http://www.javahispano.org/http://www.javahispano.org/
  • 7/21/2019 Trabajando Con Tomcat

    2/9

    Instalar nuevas aplicaciones en Tomcat.

    Supongo que si estas metido un poco en este de Java es difcil que, almenos alguna vez, no hayas oido hablar de Tomcat [1]. Tomcat es un aclamado

    contenedor de Servlets y pginas JSP, totalmente open source y bastantepotente. Seguro que has oido muchas cosas buenas de l, pero seguro quealguna vez tambin has oido que su documentacin es un poco escasa, y si haeso aadimos las pocas ganas que tenemos normalmente de leer ladocumentacin, pues sabrs que instalar una nueva aplicacin, al menoshacerlo bien, tampoco lo hacen muchos. Yo tampoco soy un experto, lo hehecho varias veces pero siempre limitndome a hacer lo mnimo para quefuncione. Por alguna razn, ahora me he decidido a explicar como se hace,dando toda la informacin que pueda, pero perdonadme si no doy un mtodoperfecto y me dejo varias cosas.

    Existen tres formas de instalar una aplicacin en Tomcat:

    Instalar un archivo WAR (Web ARchive) en la jerarqua de ficheros deTomcat.

    Instalar la aplicacin descomprimida en la jerarquia de ficheros de Tomcat.

    Instalar la aplicacin donde queramos y manipular el ficheroTOMCAT_HOME\conf\server.xml

    1. Formas de instalar aplicaciones en Tomcat.

    Instalar un archivo WAR.

    Esta es la manera ms sencilla de instalar una aplicacin para tomcat. Un fichero WAR(Web Archive) no es ms que un fichero comprimido (al igual que un JAR) que contienetodos los archivos necesarios para la aplicacin web. Este fichero lo puedes generar tumismo, pero es ms fcil si dejas que lo cree alguna de las herramientas que existen paraello, pertenecientes a J2EE [2].

    Lo nico que hay que hacer es copiar este fichero WAR al directorioTOMCAT_HOME\webapps. Luego ser Tomcat el que se encargar de descomprimir el

    archivo cuando se arranque el servidor. Normalmente esto solo se hace en el momentodel despliegue final, cuando quieres instalar la aplicacin y hacerla productiva.

    Instalar la aplicacin descomprimida.

    Este mtodo es posiblemente el ms usado, al menos en tiempo de desarrollo. Lo quehay que hacer para instalar una aplicacin web segn este mtodo es copiar todos losficheros de nuestra aplicacin con una estructura de directorios dada, de forma queTomcat los encuentre y los entienda. Esta estructura de directorios viene indicada por laespecificacin del API J2EE.

    Estructura de directorios.

    Instalar nuevas aplicaciones en Tomcat.

    Pgina 2

  • 7/21/2019 Trabajando Con Tomcat

    3/9

    Empezamos creando un subdirectorio en la carpeta TOMCAT_HOME\webapps con elnombre de nuestra aplicacin, por ejemplo mi_aplicacion. Este directorio ser la raz denuestra aplicacin web. En l es donde se pueden colocar los ficheros HTML, JSP, deimagenes, etc, que componen nuestro sitio, como se hace normalmente, permitiendose,por supuesto, jerarquias de directorios para una mejor organizacin. A esta carpeta ser a

    la que se vaya cuando el cliente haga una peticin a nuestra aplicacin por medio de laURL http://mi_servidor[.PUERTO]/mi_aplicacion/.

    Otros de los directorios que tenemos que crear para seguir la especificacion de J2EE yde Servlets 2.2 (y posteriores), son, dentro de nuestro directorio raiz, el que hemosllamado mi_aplicacion, uno llamado WEB-INF(as exactamente,todo en maysculas), ydentro de este otro llamadoclasses, en el que colocaremos nuestras clases compiladas(.class). En este subdirectorio classestendremos que poner las clases de nuestrosservlets asi como las clases que ellos utilicen, es decir, las clases de las que dependen.Estas clases no tienen que estar combinadas en un fichero JAR (estos se colocan en otrositio) y tienen que respetar la estructura de subdirectorios que indiquen sus paquetes,como ocurre siempre en Java, esto no es nuevo.

    Dentro de la carpeta WEB-INFtodava podemos crear otro subdirectorio estandar, si noshace falta. Este subdirectorio se llama lib, y es el encargado de almacenar los ficherosJAR especificos de nuestra aplicacin. Esto pueden ser cualquier tipo de clasesempaquetadas, nuestras o de terceros, como por ejemplo un parser XML, o drivers JDBC.

    Para acabar con este directorio especial WEB-INF, nos falta un fichero (aunque no esobligatorio), web.xml, descriptor de despliegue de la aplicacin web, que en cristiano, quees lo que hablamos nosotros, significa que es el fichero donde se describe nuestraaplicacion web, es decir, donde decimos que servlets la componen, que parmetros deinicializacin tienen estos, restricciones de seguridad de la aplicacin, etc.

    El fichero web.xml.

    Podeis encontrar toda la informacin detallada de este fichero en la especificacin delAPI Servlets 2.2 (y en las posteriores, obviamente), pero aqu teneis un ejemplo (es unatraduccin resumida del ejemplo que viene con la documentacin de Tomcat), con todo lonecesario para nuestra aplicacin.

    Mi aplicacion

    Esta es la primera aplicacin que escribo y despliegoen Tomcat.Soy alberto, y mi direccion de correo esal at javahispano.com

  • 7/21/2019 Trabajando Con Tomcat

    4/9

    getServletContext().getInitParameter("name");

    donde "name" correponde al parametro .

    Son opcionales-->

    [email protected]

    Direccin del webmaster

    HolaMundo

    Este es mi primer servlet, y por tanto slo dice el-obligatorio- "Hola Mundo!".Tiene un parmetro que le dice en que color escribir.

    com.javahispano.web.HolaMundocolorazul

    5

  • 7/21/2019 Trabajando Con Tomcat

    5/9

    Se pueden definir 0 o mas mapeos, e incluso varios parael mismo servlet.

    -->

    controlador*.bd

    grafico/grafico

    30

    Ampliacin del fichero web.xml

    Esta es una versin muy limitada del fichero web.xml. Segn la especificacin del API

    se pueden detallar muchos ms aspectos de nuestra aplicacin, pero son eso, aspectosconfigurables de nuestra aplicacin, no necesarios para la ejecucin de Tomcat. Aunqueuna explicacin detallada de estos elementos sera ms adecuada para un articulo sobrela creaccin de aplicaciones J2EE (quizs sera interesante, algn interesado enescribirlo?), detallar algunos de los que pueden resultar ms interesantes.

    Uno de los elementos adicionales para el descriptor web.xml es %lt;error-page>, queindica que pgina se mostrar cada vez que se produzca un error, que en Java se llamanexcepciones. El siguiente elemento determinar que cada vez que se produzca unaexcepcinException(o una de sus descendientes) se muestra la pgina de error.

    java.lang.Exception/error.jsp

    Otro elemento til puede ser %lt;taglib>, que permite mapear un biblioteca deetiquetas JSP a una direccin relativa o URI. Por ejemplo, podemos mapear nuestrabiblioteca etiquetas_utilidad_v1_3.tlda utilidadesde la siguiente forma:

    /utilidades

    /WEB-INF/tlds/etiquetas_utilidad_v1_3.tld

    Instalar nuevas aplicaciones en Tomcat.

    Pgina 5

  • 7/21/2019 Trabajando Con Tomcat

    6/9

    Ahora podemos usar dicha librera de forma ms sencilla:

    Tambin se pueden declarar algunos ficheros o direcciones como privados, de formaque cada vez que se quiera acceder a ellos nos aparezca automticamente un peticin deautentificacin, normalmente un formulario para que introduzcamos nombre y contrasea.Esto se hace por medio de los elementos y (ysubelementos), pero bueno, esto solo lo cuento para mostraros un poco las posibilidadesque hay (actualmente ya esta escrito ese artculo, llamado Autentificacin controlada porel contenedor en Tomcat [3]), porque hablar de usuarios, roles y restricciones de seguridadse escapa de la idea de este artculo. Ya sabeis donde hay ms informacin, en las

    especificaciones de la plataforma J2EE.

    Manipular el fichero TOMCAT_HOME\conf\server.xml.

    Este ltimo modo de instalar un aplicacin en Tomcat, es bsicamente igual que elanterior, en el sentido que tenemos que seguir la estructura de directorios que se nosmarca y dems. La diferencia esta en dnde colocamos los ficheros de nuestra aplicacin.Podemos decidir colocar nuestra aplicacin fuera de la jerarquia de directorios de Tomcat(por ejemplo en la de Apache), pero entonces, para que este encuentre nuestraaplicacin, le tendremos que decir dnde esta, y para ellos tenemos que manipular elfichero TOMCAT_HOME\conf\server.xml.

    Este proceso de manipulacin del fichero server.xml tambin se puede (debe) usarcuando queremos que nuestra aplicacin tenga algunos valores en su contexto que noson lo que vienen por defecto, por ejemplo, para hacer que Tomcat recargue las clasesautomticamente cada vez que cambiamos algo en nuestros servlets o clases auxiliares.

    De lo que se trata es de aadir un nuevo elemento a este fichero XML. Paraello tenemos que editarlo, colocarnos al final de dicho fichero, dentro de un servidor justo antes de (esta ubicacin no es exactamente lo misma en las distintasversiones de Tomcat, y tambin esta en funcin de si tenemos configurados servidoresvirtuales), y aadir nuestra entrada. Por ejemplo:

    Los atributos que acepta este elemento son:

    path: este es el nombre por el que se llegar a nuestra aplicacin. En nuestro

    caso http:\\miservidor.com\mi_aplicacion. Es obligatorio ponerlo.

    Instalar nuevas aplicaciones en Tomcat.

    Pgina 6

  • 7/21/2019 Trabajando Con Tomcat

    7/9

    docBase: esta es la direccin del directorio raz de nuestra aplicacin.Puedes ser un path relativo a TOMCAT_HOME (../web) o absoluto (c:\web enWindows, o /web en *nix). Este atributo tambin es obligatorio.

    debug: este atributo opcional le indica a Tomcat cuanta informacin dedepuracin debe dar. Admite valores entre 0 y 9, y cuanto ms alto sea mayorinformacin dar. Por defecto es 0 (informacin mnima).

    reloadable: Este atributo opcional y booleano le indica a Tomcat si tiene quecomprobar las clases compiladas (.class) en busca de cambios. Por defectovale false, lo que significa que Tomcat no comprueba los cambios en lasclases compiladas, por lo que sigue trabajando con las versiones antiguas. Entiempo de desarrollo es recomendable ponerlo a truepara no tener quereiniciar manualmente el servidor cada vez que cambiamos nuestro Servlet ouna clase usada por l.

    trusted: Por defecto este atributo opcional es false, e indica si nuestra

    aplicacin tiene permiso para acceder a las clases internas de Tomcat. Ms omenos, la nica aplicacin que lo hace es el administrador que viene conTomcat.

    2. Atributos del elemento Context

    Por supuesto este elemento (context) admite subelementos, para definir cosas comolos ficheros de log de la aplicacin, pero puesto que eso cambia con cada versin deTomcat, es mejor que os guieis por la documentacin de nuestra versin y por losejemplos que trae.

    Informando a Apache.

    Lo que sucede a continuacin, es que nosotros no usamos casi nunca llamadasdirectas a Tomcat, si no que hacemos las llamadas desde nuestro navegador al servidorweb Apache, y este le pasa a Tomcat el trabajo de tratar con Servlets y pginas JSP.Para que Apache se de por enterado de que nuestra aplicacin existe, y que queremosque la trate Tomcat, tenemos que cambiar an un fichero. Si utilizamos el mdulomod_jkpara realizar la conexin entre Apache y Tomcat este fichero es el mod_jk.confsituado enel directorio TOMCAT_HOME\confgeneralmente, si utilizamosmod_webapptendremos quecambiar el final de APACHE_HOME/onf/httpd.conf.

    Para versiones anteriores, si habeis optado por mod_jk, podeis adivinar que ficheroconcreto mirando la configuracin de Apache. Cuando instalasteis Apeche y Tomcat y leshicisteis colaborar (en esta web teneis artulos para la version 3.x [4]y 4.x[5]), tuvisteis queincluir un fichero de Tomcat en el fichero APACHE_HOME\conf\httpd.conf. Al final de estefichero seguro que escribisteis algo as como (Tomcat 3.x):

    include c:/tomcat/conf/mod_jk.conf

    Ese es el nombre del fichero que tendres que editar. Lo nico que hay que hacer paraque Apache le pase esas llamadas a nuestra aplicacin a Tomcat es aadir los datos de

    autoconfiguracin de nuestra aplicacin. Tan sencillo como:

    #########################################################

    Instalar nuevas aplicaciones en Tomcat.

    Pgina 7

  • 7/21/2019 Trabajando Con Tomcat

    8/9

    # Inicio autoconfiguracion del contexto de /mi_aplicacion#########################################################

    ## Esta lnea informa a Apache de la existencia de un# sitio web fuera de su jerarquia de directorios.

    # En Tomcat haciamos algo similar si moviamos nuestra aplicacin#Alias /mi_aplicacion "c:/tomcat/webapps/mi_aplicacion"Options Indexes FollowSymLinks

    ## Ahora informamos a Apache de que le mande las peticiones# de Servlets y JSP a Tomcat.# Solo le envia estas peticiones, ya que Apache sirve# mas rapidamente el contenido esttico.# Ademas le decimos que Protocolo usar, si tenemos el# 13 mejor que el 12 ;-) (en realidad es 1.2 y 1.3).# Ver como el "como instalar Tomcat" en nuestra web

    # para mas informacin.#JkMount /mi_aplicacion/servlet/* ajp13JkMount /mi_aplicacion/*.jsp ajp13

    ######################################################## Fin autoconfiguracion del contexto de /mi_aplicacion#######################################################

    Con esto sera suficiente, pero podemos aadir otros datos de configuracin, sabiendoque son cosas de Apache, nada que ver con Tomcat.

    Por ejemplo impediremos que nadie lea nuestra carpeta /WEB-INF, a fin de cuentas esono es el interfaz de usuario, no?.

    ## Esto es para todas las plataformas salvo Windows#

    AllowOverride Nonedeny from all

    ## Y esto es para Windows.# Location no funciona bien en Windows#

    AllowOverride None

    deny from all

    Si habeis optado por comunciar Apache y Tomcat por medio del mdulo mod_webapplo mejor que podeis hacer es consultar el final del artculo dedicado a la instalacin deApache con Tomcat 4 [5], donde viene explicado en detalle el proceso.

    Conclusin

    Y eso es todo, punto y final, quizs no sea la cosa ms sencilla del mundo, perotampoco es imposible, no?. No os asusteis, despus de hacerlo un par de veces leperdereis el miedo.

    Instalar nuevas aplicaciones en Tomcat.

    Pgina 8

  • 7/21/2019 Trabajando Con Tomcat

    9/9

    Este pequeocomoesta basado en gran medida en la documentacin de Tomcat, quequizs alguno de vosotros os hayais atrevido a leer. Pero no se puede considerar unatraduccin literal, es una simple ampliacin detallada de las notas que he ido tomando(creedme que no todo esta en la documentacin) a lo largo de de las veces que he tenidoque crear y desplegar aplicaciones para Tomcat. Tambin he aadido informacin

    procedente de la especificacin de J2EE y Servlets. Puesto que no es una traduccinliteral, para cualquier duda os remito a la documentacin original y a los FAQ existentessobre Tomcat, ya sea en la propia fundacin Apache o en jguru [6].

    Recursos y referencias

    [1]Sitio de Tomcat,http://jakarta.apache.org/tomcat/[2]Sitio de Java Enterprise Edition,http://java.sun.com/j2ee/[3]Autentificacin manejada por el contenedor en Tomcat,

    http://www.javahispano.org/articulos/ver_articulo.jsp?id=24[4]Instalacin de Apache + Tomcat 3,http://www.javahispano.org/articulos/ver_articulo.jsp?id=18[5]Instalacin de Apache + Tomcat 4,http://www.javahispano.org/articulos/ver_articulo.jsp?id=47[6]jGur,http://www.jguru.com

    Acerca del autor

    Alberto es ahora mismo desarrollador de aplicaciones en mbito cliente/servidor para laempresa T-Systems - debis Systemhaus en Munich (Alemania). Cuando no esttrabajando o "metiendo caa" al resto de los integrantes de javaHispano intenta pasearcon su novia, buscar la desaparecida lgica del idioma alemn o intentar olvidar lapesadilla que es buscar piso en Munich.

    Copyright (c) 2002, Alberto Molpeceres. Este documento puede ser distribuido solo bajo los

    trminos y condiciones de la licencia de Documentacin de javaHispano v1.0 o posterior (la ltima

    versin se encuentra en http://www.javahispano.org/licencias/).

    Instalar nuevas aplicaciones en Tomcat.

    Pgina 9

    http://jakarta.apache.org/tomcat/http://java.sun.com/j2ee/http://www.javahispano.org/articulos/ver_articulo.jsp?id=24http://www.javahispano.org/articulos/ver_articulo.jsp?id=18http://www.javahispano.org/articulos/ver_articulo.jsp?id=47http://www.jguru.com/http://www.jguru.com/http://www.javahispano.org/articulos/ver_articulo.jsp?id=47http://www.javahispano.org/articulos/ver_articulo.jsp?id=18http://www.javahispano.org/articulos/ver_articulo.jsp?id=24http://java.sun.com/j2ee/http://jakarta.apache.org/tomcat/