Document mis à jour 16 avril 2001. Je suis ouvert à n'importe quelle suggestion qui pourrait m'aider à améliorer ces matériaux. N'hésitez pas d'écrire à l'auteur, Jonathan Revusky.

(This document in English) (Este documento en español)

Salut, Niggle

Suivant une longue tradition en informatique, ce répertoire contient un servlet genre "Hello, World" qui fonctionne avec la librairie Niggle. L'objectif de cette étape, ce n'est pas de faire grand-chose de très intéressant. C'est tout simplement, qu'après avoir réussi à compiler et faire fonctionner cet exemple, vous aurez tout le nécessaire pour passer à d'autres exemples plus intéressants. Vous aurez un serveur de servlets installé et vous aurez défini un contexte d'application où vous pourrez installer vos exemples.

Ces instructions supposent que vous avez déjà le JDK 1.2 (ou une version supérieure) installé et aussi le Tomcat ou un autre serveur de servlets qui utilise le même système de configuration. Même si je fais référence spécifiquement à Tomcat dans ce document, ça ne devrait pas être trop difficile de faire fonctionner cet exemple avec un autre serveur. Néanmoins, si le serveur en question utilise des fichiers de configuration qui ne sont pas les standards, vous serez peut-être obligé d'adapter quelque peu ces instructions.

Etape 1: Compiler le code.

Le truc pour compiler le code, c'est de s'assurer que le compilateur puisse résoudre toutes les dépendances. Pour compiler ce servlet il faut que les deux fichiers niggle.jar et servlet.jar se trouvent sur le CLASSPATH. Dans la commande suivante, il faudra remplacer $NIGGLE_HOME par le répertoire où vous avez désarchivé Niggle. Sous unix, ça serait:

javac -classpath $NIGGLE_HOME/lib/niggle.jar:$NIGGLE_HOME/lib/servlet.jar *.java

et sous Windows:

javac -classpath $NIGGLE_HOME\lib\niggle.jar;$NIGGLE_HOME\lib\servlet.jar *.java

Ce faisant, vous devriez générer les fichiers HelloNiggleServletInteraction.class et HelloNiggleServlet.class.

Etape 2: Installer les classes et la page modèle

Dans ce qui suit, je fais référence au répertoire racine de votre serveur de servlets comme $TOMCAT_HOME. Si vous n'avez pas encore installé un serveur de servlets, vous pouvez aller à http://jakarta.apache.org et obtenir la dernière version stable de Tomcat. Si vous avez le fichier .zip ou .tgz, par exemple, il s'agit tout simplement de le désarchiver dans le répertoire qui sera le parent de votre $TOMCAT_HOME.

Maintenant, sous votre $TOMCAT_HOME, il existe un répertoire qui s'appelle webapps. C'est ici que le serveur Tomcat cherche les informations reliées aux applications web. Chaque subrépertoire de $TOMCAT_HOME/webapps est censé être le répertoire racine d'un contexte d'application web. Nous commençons en créant notre propre contexte d'application. Cela se fait en créant un subrépertoire qui s'appelle de webapps qu'on appelera niggletut.

Maintenant, en dessous du répertoire niggletut qu'on vient de créer, créez un subrépertoire qui s'appelle WEB-INF. Sur un système unix, il sera important que tout soit en lettres majuscules. C'est à dire, "WEB-INF". Sous ce répertoire-là, créez encore 2 subrépertoires: classes et lib.

Vérifions donc. Rendu à ce point-ci, vous auriez dû créer une structure en dessous de $TOMCAT_HOME qui se ressemble pas mal à celle-ci:



$TOMCAT_HOME
           |
           webapps   
                 |
                 niggletut
                         |
                         WEB-INF
                               |
                               classes
                               |
                               lib


Maintenant, il faut faire le suivant:

Etape 3: Essayer le Servlet

Nous voilà au moment de la verité. Vous devez faire le suivant:

Si vous utilisez tomcat, la primière étape se fait en se servant d'un script dans le répertoire $TOMCAT_HOME/bin. Il s'appelle startup.bat ou bien startup.sh, tout dépend de la secte religieuse à laquelle vous appartenez. (Si tomcat s'executait déjà, il faudrait faire le shutdown avant.)

Vu que, par défaut, Tomcat fonctionne sur le port 8080 et établit la correspondance <nom-de-contexte>/servlet/<nom-de-servlet> aux servlets du contexte donné, l'URL suivant devrait faire l'affaire:

http://localhost:8080/niggletut/servlet/HelloNiggleServlet

Il s'agit de l'ouvrir dans votre navigateur web. Maintenant, vous devriez avoir le message genre "Hello, Niggle" dans le navigateur. Si vous avez suivi toutes les étapes de façon conscientieuse, et vous utilisez Tomcat 3.2 sur Java 2, il est difficile s'imaginer qu'est-ce qui pourrait aller mal. Vraiment, ça devrait fonctionner. D'autre part, si vous l'essayez avec un autre serveur, et ça ne fonctionne pas, je vois deux possibilitiés. La première, c'est que l'URL que j'ai donné ci-dessus n'est pas le bon. Par exemple, il est possible que votre serveur fonctionne par défaut sur le port 8000, au lieu de 8080 ou quelque chose comme ça. L'autre possibilité, c'est que vous devez changer quelque chose de la configuration principale de votre serveur pour qu'il reconnaisse l'existence du contexte niggletut que vous avez créé. (Ce cas se produit avec un autre serveur de servlets avec lequel j'ai essayé cet exemple, le Jetty 3.) A vrai dire, ce genre de problème vous oblige à recourrir à vos propres astuces pour résoudre le problème. Peut-être si vous vous désespérez suffisament, vous vous mettrez à lire la documentation du serveur.

Si vous avez réussi à compiler et faire fonctionner cet exemple, veuillez passer aux notes qui explique les diverse composantes de ce servlet et son fonctionnement.