Despabilando la MonoNeurona::Internet es de todos [Inicio] [Regresar]
Server Side
Server Side
Tomcat, Java y PostgreSQL

Este artículo ha sido consultado en 2,859 ocasiones.



En este tutorial se enseña cómo realizar una aplicación web básica usando GNU/Debian + Tomcat + Postgresql

Uno de los problemas con respecto a desarrollar aplicaciones java en debian, es que la version estable (Woody) trae un jdk desfasado (muy viejo pues), pues es el 1.1.8 mientras que el de Sun ya va en el 1.4.2 Así, un número considerable de programas como jetty, Jboss o jigsaw tienen problemas, además hay mucho código fuente que llama a paquetes del jdk1.4. Entonces, en lugar de usar el apt-get de debian recomiendo bajar el jdk de Blackdown , de preferencia el 1.4.1 que es la version estable. Una vez descargado el paquete se descomprime simplemten ejecutandolo pues se trata de un binario:

$ sh ./jdk1.4.1.bin

Nota: Para este tutorial asumo dos usuarios: el root y un usuario normal.
Los comandos que deberán ser ejecutados por el root están precedidos por ' # ' mientras los del usuario normal lo estan por ' $ '

.

Esto creará un directorio nuevo con un nombre parecido a "jdk1.4-algo-mas". Nos cambiamos a root y movemos el directorio recién creado al directorio /opt con el nombre jdk1.4:

# mv jdk1.4-algo-mas /opt/jdk1.4

Ahora el compilador (javac) y la JVM (java) deben estar en /usr/lib/jdk1.4/bin, creamos links simbólicos en /usr/bin para que el sistema los encuentre pues busca siempre en ese directorio cuando invocamos un comando:

# ln -s /opt/jdk1.4/bin/java /usr/bin/java

# ln -s /opt/jdk1.4/bin/javac /usr/bin/javac

Abrimos otra terminal y como usuario normal tecleamos:

$java -version

Esto es para conocer los detalles de la JVM, debe regresar algo como Java Version "1.4.1" y algunos detalles más. Tambien tecleamos:

$ javac

Nos regresara un mensaje de error y sugerencias de uso pero no nos importa, lo que queríamos comprobar es que los comandos java y javac se pueden usar desde cualquier directorio y por cualquier usuario, ahora java esta instalado en nuestro sistema.

En cuanto a nuestra querida PostgreSQL.org basta con usar la herramienta apt-get. El archivo /etc/apt/sources.list debe tener algo como esto en caso de que queramos bajar postgresql desde la red:

deb http://debian.lcs.mit.edu/debian woody main contrib non-free
deb-src ftp://ftp.debian.org/debian woody main contrib non-free
#Debian Non-US
deb http://non-us.debian.org/ woody/non-US main contrib non-free
#deb-src http://non-us.debian.org/ woody/non-US main contrib non-free

Me gusta tomar los archivos del servidor del MIT por que esta mantenido con dinero del ejército de EU, de modo que por lo menos regresa un poco de lo mucho que abusivamente nos quitan a las colonias =P. Por supuesto debes de cambiar la opción "woody" dependiendo de la versión de Debian que tengas. Dado que para este tutorial supongo un equipo en producción, deberemos seleccionar los paquetes de la versión estable, que en este momento (Julio del 2004) es Woody. Ahora que hemos editado nuestro archivo, actualizamos nuestra lista de paquetes con:

# apt-get update

En caso de que postgresql este en un cd de alguna distribucion de Debian basta con el comando "apt-cdrom add" para agregar los paquetes de ese cd al archivo sources.list. Héchale un ojo al contenido antes y después de correr al comando apt-cdrom para que veas los cambios. Ahora que hemos decidido de donde tomaremos los paquetes simplemente instalamos la base de datos con el comando apt-get:

# apt-get install postgresql

Y esperamos a que se instale, si es la primera vez que se instala nos preguntara alguno detalles como el formato de fecha y que tipo de caracteres vamos a usar, por supuesto un japonés no debería de seleccionar el mismo tipo que un sueco, en el caso del español debemos selecionar LATIN1 para que postgresql no tenga problemas con los acentos y las eñes. Nos hacemos un gran favor (no, no ese favor) y en el archivo /etc/postgresql/pg_hba.conf utiliza esta línea como método de autentificación:

local all trust

Ahora que hemos configurado postgresql reiniciamos la base de datos con el script de postgresql asi:

# /etc/init.d/postgresql restart

Nos cambiamos al usuario "postgres", vamos al directorio /usr/local/pgsql/bin y creamos una base de datos llamada "clientes" con el comando

$ createdb clientes

En seguida hacemos uso de esa base de datos con el comando psql:

psql clientes

Ya adentro de la base de datos creamos la tabla "datos":

clientes=# CREATE TABLE datos (
id_datos serial,
direccion varchar(60),
cp varchar(6),
email varchar(20)
);

Creamos un par de registros para la tabla "datos":

clientes=#INSERT INTO datos VALUES (NEXTVAL('datos_id_datos_seq'), 'Ceballos 106-2', '04340', 'linus@torvald.org');

clientes=#INSERT INTO datos VALUES (NEXTVAL('datos_id_datos_seq'), 'Cerrada del puerco 89', '92165', 'porky@bacon.org');

Nos cambiamos a root y modificamos el password del usuario "postgres" a "mex2004" asi:

#passwd postgres

y tecleamos dos veces "mex2004".

Bien, ahora tenemos java y postgresql ibnslados y funcionando, ahora decargamos los binarios de Tomcat, yo uso la version 5.0.x asi que es la que recomiendo bajar. Descomprimimos el archivo:

$tar -zxvf jakarta-tomcat-5.0.x.tar.gz

y el directorio resultante lo colocamos en /usr/local con el nombre "tomcat":

# mv jakarta-tomcat /usr/local/tomcat

El java webserver Tomcat es un proyecto cuyo nomre clave es CATALINA, por lo cual cuando nos refiramos a $CATALINA_HOME nos estaremos refiriendo al directorio /usr/local/tomcat. Tomcat trae un grupo de scripts para activar y desactivar el java webserver, este directorio esta en $CATALINA_HOME/bin/, buscamos el script startup.sh y tecleamos como usuario normal:

$./startup.sh

Bueno, ahora probamos que tomcat este trabajando abriendo nuestro browser y colocándonos en el puerto 8080 que es el que usa por default tomcat : http://localhost:8080. La página de Tomcat debe aparecer con su logotipo de Tomcat arriba a la izquierda, esto nos dice que el servidor está funcionando ( <-- notar la extrema brillantez de la inferencia). Ahora podemos ir a http:/localhost:8080/examples/ para ver algunos de los ejemplos de servlets y JSP que vienen con tomcat.

Ahora instalamos el JDBC de postgresql descargándolo de jdbc.postgresql.org y teniendo cuidado de descargar la version para java2 de nuestra version de postgresql, si tenemos la version de postgresql 7.4.x el JDBC es este. Después de descargado movemos el archivo.jar a al directorio $CATALINA_HOME/common/lib de tomcat:

# mv pg74jdbc3.jar $CATALINA_HOME/common/lib/pg74jdbc3.jar

Bien, pasamos a la parte más difícil de la instalación que son las variables de entorno, son varias, pero la más importante es CLASSPATH (en java muchas veces cuando algo falla es por que el CLASSPATH no contienen los archivos .jar necesarios). Cuando abres una sesión de shell estas tomando variables de ambiente, para ver estas variables utiliza el comando "env". Para colocar una variable simplemente tienes que teclear:

$ export CATALINA_HOME=/usr/local/tomcat

Para comprobar que la variable ya esta en "el ambiente" teclea:

$ echo $CATALINA_HOME

Debes poder ver como respuesta a este comando: «/usr/local/tomcat». Estas variables le dicen al sistema donde encontrar los recursos (los archivos pues), el problema es que si usas el comando "export" desde la linea de comandos para colocar variables, estas se perderán cada vez que cierras la sesion de shell, esto es bastante fastidioso. En lugar de esto las variables deben estar definidas en el archivo .bash_profile de la persona que vaya a activar Tomcat (que no debe ser el root). El archivo .bash_profile deber tener estas líneas:

PATH="/usr/local/bin:/usr/bin:/bin:./:/usr/bin/X11:/usr/games"
CLASSPATH="/opt/jdk1.4/lib/dt.jar:/usr/lib/jdk1.4/lib/tools.jar:
/usr/share/java/servlet.jar
/usr/share/java/pg74jdbc3.jar"
JAVA_HOME="/opt/jdk1.4:/usr/share/java"
TOMCAT_HOME="/usr/local/tomcat"
export PATH CLASSPATH JAVA_HOME TOMCAT_HOME

NOTA: Por alguna misteriosa razón KDE no toma los variables de .bash_profile así que inténtalo con el archivo de .bashrc

Despues de modificar este archivo, cerramos las terminales del usuario que vaya a activar tomcat y vaya a compilar con el compilador de java (si son varios usuarios, se deben agregar esas lineas a cada uno de los perfiles). Abrimos una terminal y tecleamos "env" para ver si las variables de entorno aparecen, nótese que las variables deben estar declaradas después del comando "export" en el archivo .bash_profile (o .bashrc en el caso de kde). Si eres de esos que les gusta reiniciar el equipo despues de haber estado manoseando mucho los archivos, estas en libertad de hacerlo (que se la va a hacer!!, malos hábitos adquiridos de usar sistemas operativos mal hechos =: ) ).

Como usuario normal apagamos y reiniciamos Tomcat:

$ CATALINA_HOME/bin/shutdown.sh

$CATALINA_HOME/bin/startup.sh

Nos colocamos en nuestro browser en http://127.0.0.1:8080/index.html

y voila! hemos finalizado la configuracion. Para comprobar que todo trabaje bien simplemente hojeamos los ejemplos que trae Tomcat. Si todo parece correcto podemos ir al siguiente paso, que es ver la base de datos con el navegador, para ello descarga este archivo en el directorio raiz. Si vemos los registros, este es el archivo para editarlos.Y por último este es el archivo para actualización.


Última actualización: 2007-04-29 10:57:00-05



ir arriba
The Queen is here Mozilla Firefox The Best DataBase CakePHP Framework CSS GNU Hacker