Documento actualizado por última vez el día 13 de abril 2001. Estoy abierto a cualquier sugerencia que me pueda ayudar a mejorar estos materiales. No dudes en escribir al autor: Jonathan Revusky.
(This document in English) (Ce document en français)Seguimos una larga tradición en informática al ofrecer un primer ejemplo tipo "Hello, World" que funciona con la librería Niggle. El objetivo de esta etapa, como siempre, no es hacer algo interesante en sí. Es simplemente que, una vez consigues compilar y ejecutar este sencillo ejemplo, lo tendrás todo dispuesto para pasar a los ejemplos más interesantes. Tendrás un servidor de servlets instalado y funcionando y habrás definido un contexto de aplicación donde instalar tus ejemplos.
Estas instrucciones dan por descantado que ya tienes el JDK 1.2 o mejor instalado en tu máquina y que tienes instalado el Tomcat u otro servidor de servlets que usa el mismo esquema de configuración. Incluso si me refiero específicamente a Tomcat en este documento, no debería ser demasiado difícil hacer que este ejemplo funcione con otro servidor.
El truco para compilar el código es asegurarse de que el compilador pueda resolver todas las dependencias. Para compilar este servlet sencillo necesitamos que niggle.jar y servlet.jar estén en el CLASSPATH. En lo siguiente tendrás que sustituir $NIGGLE_HOME por el directorio donde desarchivaste Niggle. Bajo unix, esto sería:
javac -classpath $NIGGLE_HOME/lib/niggle.jar:$NIGGLE_HOME/lib/servlet.jar *.java
y bajo Windows:javac -classpath $NIGGLE_HOME\lib\niggle.jar;$NIGGLE_HOME\lib\servlet.jar *.java
Despues de esto, deberías haber generado los ficheros HelloNiggleServletInteraction.class y HelloNiggleServlet.class.
En lo siguiente, me refiero al directorio raíz de tu servidor de servlets como $TOMCAT_HOME. Si no tienes instalado ningún servidor de servlets, puedes ir a http://jakarta.apache.org y bajar la última versión estable de Tomcat. Si tienes el fichero .zip, por ejemplo, sencillamente lo desarchivas en el directorio que será por encima de tu $TOMCAT_HOME.
Ahora, relativo a la ubicación $TOMCAT_HOME, existe un directorio que se llama
webapps
. Es en esta ubicación que el servidor tomcat
busca información relacionada a las aplicaciones web. Cada subdirectorio
de $TOMCAT_HOME/webapps se supone que es el directorio raíz de
un contexto de aplicación web. Empezaremos creando
nuestro propio contexto de aplicación. Empezamos creando
un subdirectorio que se llama niggletut
.
Ahora, por debajo del directorio niggletut, crea un subdirectorio llamado
WEB-INF
. En un sistema unix, será importante
que esto sea todo en letra mayuscula. Es decir "WEB-INF" todo mayuscula.
Bajo WEB-INF
, crea 2 subdirectorios más: classes
y
lib
.
Entonces, deberías haber creado una estructura por debajo de $TOMCAT_HOME que se parece a esto:
$TOMCAT_HOME | webapps | niggletut | WEB-INF | classes | lib
Ahora lo que tienes que hacer es lo siguiente:
hello.nhtml
a ese mismo subdirectorio WEB-INF/classes.Ahora viene el momento de la verdad. Tienes que hacer lo siguiente:
Si estás usando tomcat, la primera etapa se hace ejecutando un script en el directorio $TOMCAT_HOME/bin directory. Esto es o startup.bat o startup.sh, dependiendo de la secta religiosa a la cual perteneces. (Si ya tenías tomcat corriendo, tienes que hacer shutdown primero.)
Dado que, por defecto, tomcat corre en el puerto 8080 y crea la correspondencia <nombre-de-contexto>/servlet/<nombre-de-servlet> a los servlets en el contexto dado, el URL siguiente debería funcionar:
http://localhost:8080/niggletut/servlet/HelloNiggleServlet
Se trata de abrirlo en tu navegador web. Ahora, deberías tener el mensaje "Hello, Niggle" en el navegador. Si seguiste las etapas con esmero y estás usando Tomcat 3.2 con Java 2, es difícil ver qué podría haber ido mal. Realmente debería funcionar. Por otra parte, si estás intentándolo con otro servidor, veo dos posibilidades principales. La primera es que el URL que he dado arriba no es del todo correcto. Por ejemplo, tu servidor a lo mejor no corre en el puerto 8080, sino 8000 o algo así. La otra posibilidad es que necesitas cambiar algo en la configuración principal del servidor para que reconozca la existencia del contexto niggletut que creaste. (Esto se da para otro servidor que he probado con el ejemplo, el Jetty 3.) Este tipo de problema hace que necesitas recurrir a tus propios recursos para resolver el problema. Quizá te pongas bastante desesperado incluso para leer la documentación del servidor.
Una vez has conseguido compilar y ejecutar este ejemplo, por favor pasa a los apuntes que explican las varias partes de este servlet y su funcionamiento.