Instalando Tomcat 5.5 en Mac OS X, Linux y Windows

En este artículo os explicaré cómo instalar, configurar, desplegar y ejecutar servlets y JSP usando Tomcat, explicando los pasos necesarios para Mac OS X, Linux y Windows. El artículo cubre la instalación y la configuración del servidor, y cómo desarrollar fácilmente aplicaciones web.

También hago una breve introducción al acceso a bases de datos mySQL desde Servlets.

1.Instalando Tomcat

Lo primero que hay que hacer es bajarnos la versión de Tomcat que nos interese (he escogido en este caso Tomcat 5).
La web de descargas de tomcat es la siguiente: Tomcat 5 Downloads

En el momento de redacción de este artículo, la versión más nueva de Tomcat 5 es la 5.5.9, cuyo binario se puede bajar aquí:

Tomcat 5.5.9 (UNIX, tar.gz)
Tomcat 5.5.9 (Windows, .exe)

El archivo .tar.gz contiene los binarios de tomcat que funcionan en cualquier plataforma (probado en Mac OS X), pueden descomprimirse por ejemplo, en /usr/share/jakarta-tomcat-5.5.9

El archivo .exe es un bonito instalador para Windows (más fácil aún)

Para aquellos que queráis instalar Tomcat en Debian, veréis que en los repositorios oficiales sólo puede descargarse Tomcat 4 (que a mí, personalmente, me ha dado problemas).

Aquí tenéis la línea a introducir en /etc/apt/sources.list: deb http://apt.leapster.org/tomcat ./

Como es costumbre: apt-get update, apt-get install tomcat5 (la versión que viene con Debian se puede instalar con apt-get install tomcat4)


2. Configurando Tomcat

El archivo de configuración principal de Tomcat, lo que sería como un httpd.conf de Apache, es server.xml y se encuentra en la carpeta conf del directorio de tomcat (/etc/tomcat5 con el paquete en Debian).

A simple vista parece muy complejo, pero realmente, lo que tenemos que modificar es muy poco. Lo único que debemos modificar es el puerto si nos interesa (por defecto, 8080), en el tag <Connector port=8080 ..., dentro de <Service name="Catalina">. Haced una búsqueda dentro del archivo.

Para poder hacer las pruebas de nuestro proyecto más fácilmente, deberían activarse dos opciones que luego para un servidor en producción deberían desactivarse, porque disminuye el rendimiento. en <Host name="localhost" ... > deberíamos activar (a true) las opciones unpackWARs y autoDeploy (unpackWARs="true" autoDeploy="true"). De lo contrario, cada vez que modifiquemos una clase deberíamos reiniciar Tomcat.

Ahora viene lo interesante.
Deberemos tener un JDK instalado en la máquina (yo uso J2SE 1.5, aunque también funciona con 1.4).
Si lo tenéis instalado, buscad el path del mismo.

Para los que aún no lo tengais instalado, aquí va un link: Java 2 SE 1.5.0
Os lo podéis bajar con o sin NetBeans. Para los que no conozcais NetBeans, aunque necesitaría un artículo aparte para mostrar cuánto me gusta este IDE, su superioridad respecto a Eclipse y lo cómodo que es, probadlo, os gustará.

Supongamos instalado el JDK. Yo lo tengo en /opt/jdk1.5.0_02
Nota: en Mac OS X, los JDK se encuentran en /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK

Ahora debemos indicarle a Tomcat que JDK usar.

En Mac OS X, deberemos añadir la siguiente variable de entorno:

    setenv CLASSPATH="/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Classes/classes.jar:
    /usr/local/jakarta-tomcat-5.5.9/common/lib/servlet-api.jar"


En Linux, modificaremos /etc/init.d/tomcat5.
    En JDK_DIRS, indicaremos el path al JDK, en este caso, JDK_DIRS="/opt/jdk1.5.0_02"

En Windows, en la instalación nos preguntará el JDK a usar.


3. Funcionamiento de Tomcat

Si nos interesa compilar una clase en concreto, con los paths correctos, simplemente debemos compilarla usando javac Clase.java
Para proyectos más complejos, puede usarse Ant, aunque la mejor opción es NetBeans, que automatiza todas estas tareas.

Una vez compilada una clase, Tomcat no la ejecutará si no se le indica que existe, por así decirlo (No es necesario hacerlo para los jsp)

En el directorio de la web (webapps, por defecto, en el directorio de tomcat), existen una serie de directorios que corresponden a directorios reales de la web, con la salvedad que incluyen archivos de información sobre el directorio.

Dentro del directorio WEB-INF de cada uno de estos directorios existe un archivo llamado web.xml. Éste contiene información sobre las clases y su localización (las clases las introduciremos en el directorio classes de WEB-INF).

La estructura de web.xml es la siguiente:

Después de la cabecera de información de xml, dentro del tag <web-app> los servlets (para cada servlet deberemos hacerlo) se indican de la siguiente forma (nombre del servlet y nombre de la clase en <servlet> y en <servlet-mapping> su ruta:

  <servlet>
    <servlet-name>Servlet1</servlet-name>
    <servlet-class>Servlet1</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>Servlet1</servlet-name>
    <url-pattern>/Servlet1</url-pattern>
  </servlet-mapping>


Realmente, programar e incluir los servlets así es bastante liado y comporta una pérdida de tiempo bastante importante.
Para ello, existen los ficheros .war, que son lo mismo que los .jar normales, para servlets.

Pueden generarse con un click en NetBeans, por ejemplo, y al copiarlos en el directorio webapps, tomcat automáticamente los descomprimirá y los pondrá en funcionamiento.


4. Acceso a bases de datos mySQL (JDBC)

Una forma sencilla de acceder a bases de datos mySQL desde Java es la siguiente:

Nos bajamos el mySQL Connector for Java de la web de mySQL
mySQL Connector/J 3.1

Al descomprimirlo, lo que nos interesa es el archivo siguiente que hay en el interior: mysql-connector-java-3.0.17-ga-bin.jar

Podemos incluirlo como una librería en nuestro proyecto, o añadirlo a la variable de entorno CLASSPATH de Java.

Las consultas se hacen de una forma muy sencilla, como muestra este ejemplo (omitiendo el tratamiento de excepciones):

Cargar el driver

String driverName = "com.mysql.jdbc.Driver";
Class.forName(driverName);

String server = "localhost";
String database = "bbdd";
String url = "jdbc:mysql://" + server +  "/" + database;
String user = "user";
String password = "passwd";

Crear conexión

con = DriverManager.getConnection(url, user, password);

El resto es como los accesos a cualquier base de datos:

Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM tabla WHERE ...");


Pronto escribiré algún otro artículo sobre Servlets y Bases de Datos, permaneced atentos ;)

Saludos,
Dani.




 


Trackback

Trackback URL for this entry:
/trackback.php/20050721165958576

No trackback comments for this entry.

Comments

Post a comment

Este post lo veo muy incompleto, lo siento.

Ni siquiera habla de la necesidad de tener un JRE apropiado para la instalación del tomcat, y de como configurar el entorno java que estés usando para que tire el tomcat.

Lo digo como crítica constructiva eh... :P

Anonymous on Wednesday, April 14 2010 @ 04:28 PM CEST Reply | #

Muy bien el post.
Una pregunta el comando
setenv CLASSPATH="/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Classes/classes.jar:
/usr/local/jakarta-tomcat-5.5.9/common/lib/servlet-api.jar"
en que archivo lo colcoas?
Tengo problemas para compilar lso Servlets, y estoy provando de todo. No sabrás alguna cosa que pueda dar error de instalación. Un saludo y gracias.

Anonymous on Saturday, March 12 2011 @ 09:33 PM CET Reply | #

Search



About

newton.gra2.com is a blog about technology, opinion and random thoughts written by Daniel Alvarez, a computer engineer currently living in Zurich, Switzerland.

Topics

User Functions

:

:


Lost your password?

Latest posts

Stories last 24 hours

No new stories

Comments last 2 days

No new comments

Trackbacks last 2 days

No new trackback comments

Links last 2 weeks

No recent new links