Le Guide d'installation de Tomcat pour Windows
URL de référence : http://www.apachefrance.com/Articles/5/

Préambule

Le présent guide est une première ébauche pour vous guider dans l'installation de Tomcat sur une plate-forme Windows (Win32).

Tomcat est l'un des composants du projet Jakarta, dont le but est de fournir des solutions serveur basées sur la plate-forme Java, de qualité identique aux applications commerciales mais développées avec l'esprit d'ouverture du logiciel libre.
C'est un moteur de servlets qui a été conçu en suivant le guide de référence officiel de l'implémentation des technologies Java Servlet et Java Server Pages (JSP). Les spécifications de ces dernières sont élaborées par Sun selon le processus établi par la Java Community.
Les JSP sont des pages contenant du code Java imbriqué dans du HTML. Cette approche est similaire à celle de l'intégration PHP/HTML.

Il existe actuellement deux grandes versions de Tomcat : Tomcat 4.0 et Tomcat 3.x.

Tomcat 4.0 implémente un nouveau moteur de servlet (appelé Catalina) basé sur une toute nouvelle architecture. Celle-ci a été réécrite depuis zéro dans un souci de flexibilité et de performance. La version 4.0 implémente les spécifications Servlet 2.3 et JSP 1.2, mais, comme celles-ci l'imposent, reste compatible avec les applications Web conçus pour les spécifications Servlet 2.2 et JSP 1.1 sans nécessiter de changements.

Tomcat 3.x se base sur une architecture un peu plus ancienne, et implémente les spécifications Servlet 2.2 et JSP 1.1.
La version 3.3 est l'actuelle version destinée à être mise en production. Elle est l'aboutissement de la refonte commencée depuis la version 3.2. Elle présente ainsi une conception modulaire plus souple, et permet au moteur de servlet d'être customisé en autorisant l'ajout ou la suppression de modules controllant le traîtement des requêtes vers les servlets. Cette version a également été particulièrement améliorée du point de vue de ses performances.
La version 3.3.1 attendue continuera sur cette lancée et amèra à son tour de nombreuses améliorations des performances et de la sécurité.

Avertissement

Vous ne trouverez pas dans cet article comment développer des applications Web en Java ou coder des Java Server Pages (JSP). En effet, je n'ai pas les compétences requises sur le sujet.
Par contre, je suis parti du principe qu'un développeur souhaitant développer des pages et/ou applications Web avec Java n'a pas forcément envie de perdre du temps à mettre en oeuvre la plate-forme nécessaire et à buter sur des problèmes "système". C'est donc plutôt à ces personnes que ce guide s'adresse. bien qu'il ne leur soit pas restreint.

Prérequis

Tomcat est indépendant de tout autre serveur. Le seul prérequis à son installation et à son utilisation est de disposer d'une machine virtuelle Java, dont nous décrivons l'installation à la page suivante.
Tomcat peut également être intégré à Apache. Dans ce cas, ce dernier continue à gérer le contenu habituel (pages statiques, PHP, etc.) mais passe le relais à Tomcat dès lors qu'il s'agit d'une page JSP ou encore d'une servlet (nous étudierons cette possibilité à la fin de cet article). Pour mettre en oeuvre une telle architecture, il faudra donc disposer d'un serveur Apache "up and running". Pour cela, je vous renvoie au Guide d'installation d'Apache pour Windows.

Installation de la Machine virtuelle Java

Pour faire fonctionner Tomcat, il est impératif de disposer d'une machine virtuelle Java. Celle-ci doit être compatible avec le standard Java 2.
Pour cela, procurez-vous le Kit de développement Java standard (SDK) version 1.3.1_01, que vous pouvez télécharger sur le site de Sun à l'URL suivante : http://java.sun.com/j2se/1.3/download-windows.html. Attention, il pèse tout de même 33 Mo.

Une fois téléchargé, double-cliquez sur l'exécutable. Vous devriez alors voir apparaître la fenêtre suivante.



Cliquez sur "Next" (ou suivant si vous avez une version française).



L'habituel accord sur la license...cliquez sur "Yes" (ou Oui si vous avez une version française).



La fenêtre suivante permet de choisir un répertoire d'installation pour le JDK. Si l'emplacement par défaut ne convient pas, cliquez sur "Browse" (Parcourir en français) et choisissez un autre répertoire. Celui-ci sera automatiquement créé s'il n'existe pas. Cliquez ensuite sur "Next".



Cette fenêtre permet de sélectionner les composants à installer. A moins que vous soyez juste en espace disque, autant tout installer. Cliquer sur "Next".



Voilà, c'est terminé. Cliquez simplement sur "Finish".

Il faut ensuite paramétrer certaines variables d'environnement. Elles seront nécessaires au bon fonctionnement de Tomcat.
Pour Windows NT/2000/XP, rendez-vous dans les propriétés du poste de travail (clique-droit sur Poste de Travail, Propriétés), puis cliquez sur l'onglet "Variables d'environnement".



Sélectionnez "Path" et cliquez sur "Edit" (ou "Modifier").



Ajoutez au début de la liste le chemin complet vers l'endroit où le JDK a été installé, suivi de "\bin". Dans la fenêtre ci-dessus, le chemin est c:\jdk1.3.1_01\bin car le JDK a été installé dans c:\jdk1.3.1_01. Validez en cliquant sur "OK".

Revenu à la fenêtre précédente, cliquez cette fois sur "New" (ou "Nouveau"). Remplissez cette nouvelle fenêtre comme suit, en spécifiant dans la partie "Variable value" ("Valeur de la variable") le chemin vers l'endroit où le JDK est installé.



Sous Windows 95/98/Me, ajoutez les lignes suivantes dans le fichier AUTOEXEC.BAT :
SET PATH=C:\JDK131\BIN;%PATH%
SET JAVA_HOME=C:\JDK131

Attention avec la ligne SET PATH, si une ligne similaire existe déjà, ajoutez la ligne décrite précédemment en-dessous de toute ligne existante.

Installation de Tomcat

Tout d'abord, téléchargez la dernière version de Tomcat via notre section Téléchargement, rubrique Tomcat.
Décompactez tout simplement le contenu de l'archive téléchargée sur le disque dur dans le répertoire de votre choix. Par la suite, nous considérerons que le répertoire c:\jakarta-tomcat-4.0.1 a été choisi.

Créez ensuite une nouvelle variable d'environnement (comme fait précédemment pour le JDK) dénommée CATALINA_HOME et pointant vers le répertoire où l'archive a été décompactée. Celle-ci est nécessaire au fonctionnement de Tomcat et désigne son répertoire de travail.


Démarrage de Tomcat

Créez deux fichiers tomstart.bat et tomstop.bat contenant les instructions suivantes :

tomstart.bat
@%CATALINA_HOME%\bin\startup

tomstop.bat
@%CATALINA_HOME%\bin\shutdown

Pour démarrer ou arrêter Tomcat, il suffira d'exécuter le script correspondant.

Si vous utilisez Windows NT/2000/XP, vous pouvez installer Tomcat comme service: Pour cela, saisissez la commande suivante dans une fenêtre DOS :
"%CATALINA_HOME%\bin\tomcat.exe" -install Tomcat "%JAVA_HOME%\jre\bin\hotspot\jvm.dll" -Djava.class.path="%CATALINA_HOME%\bin\bootstrap.jar;%JAVA_HOME%\lib\tools.jar" -Dcatalina.home="%CATALINA_HOME%" -Xrs -start org.apache.catalina.startup.Bootstrap -params start -stop org.apache.catalina.startup.Bootstrap -params stop -out "%CATALINA_HOME%"\logs\stderr.log

Pour démarrer Tomcat, vous pouvez utiliser le gestionnaire de services de Windows ou bien saisir la commande net start tomcat dans une fenêtre DOS.

Pour supprimer Tomcat de la liste des services, exécutez les commandes suivantes dans une fenêtre DOS :
net stop tomcat
"%CATALINA_HOME%\bin\tomcat.exe" -uninstall Tomcat

Pour vérifier que Tomcat est convenablement installé, ouvrez votre navigateur et saisissez comme URL http://nomduserveur:8080/
Vous devriez obtenir le résultat suivant :



Essayez de naviguer dans la section "Web Applications" et testez les exemples "Servlet" et "JSP".
En cas de problème, vous pouvez consulter les journaux de Tomcat dans le sous-répertoire logs de Tomcat.

Intégration avec Apache / Conclusion

L'intégration de Tomcat et d'Apache se fait par l'intermédiaire du module mod_webapp.

Assurez-vous tout d'abord de disposer d'une installation fonctionnelle d'Apache.
Télécharger ensuite mod_webapp via notre section Téléchargement, rubrique Tomcat.
Décompactez le contenu de l'archive téléchargée dans le sous-répertoire modules d'Apache.

Editez le fichier httpd.conf et, dans la section 1, dans la partie relative aux modules, ajoutez la ligne suivante après toute autre concernant le chargement de modules optionnels :
LoadModule webapp_module modules/mod_webapp.so
et un peu plus loin
AddModule mod_webapp.c

Ajoutez ensuite les lignes suivantes juste avant la section 3 (consacrée aux hôtes virtuels) :
# Tomcat
<IfModule mod_webapp.c>
WebAppConnection warpConnection warp localhost:8008
WebAppDeploy examples warpConnection /examples/
WebAppInfo /webapp-info
</IfModule>

Voici une description des directives utilisées :

WebAppConnection warpConnection warp localhost:8008

Indique à Apache d'établir une connexion avec Tomcat par l'intermédiaire d'un processus spécifique, Warp, écoutant sur le port 8008.
Un bref aperçu de la directive ci-dessus :
WebAppConnection [connection name] [provider] [host:port]

[connection name]
Un nom qui va être utilisé pour décrire la connexion entre Apache et Tomcat.

[provider]
Le nom du fournisseur de service permettant de se connecter à Tomcat. Actuellement, seul le mot-clé "warp" est utilisable.

[host:port]
Le couple nom d'hôte:port décrivant le nom du serveur Tomcat et le port utilisé pour se connecter au fournisseur de service décrit ci-dessus.
Il faut remplacer localhost par le nom du serveur Tomcat si Apache et Tomcat ne sont pas sur la même machine.
Le port utilisé pour la connexion entre Apache et Tomcat est défini dans le fichier server.xml, dans la section "org.apache.catalina.connectors.warp.WarpConnector", pas la section HTTP. Ce fichier peut être trouvé dans le sous-répertoire conf de Tomcat.

WebAppDeploy examples warpConnection /examples/

Cette directive indique de "déployer", c'est-à-dire mettre à disposition une application Web.
Dans le cas présent, nous déployons une application nommée "examples" (à laquelle correspond un sous-répertoire examples dans le répertoire webapps de Tomcat), accédée par Apache au travers de la connexion "warpConnection" et disponible pour l'utilisateur à l'URL "/examples/".

Voici le détail de la directive ci-dessus :
WebAppDeploy [application name] [connection name] [url path]

[application name]
Le nom de l'application Web correspond à un répertoire dans le sous-répertoire webapps de Tomcat. Celui-ci contient une structure complète décrivant l'application.
Si l'application se présente sous la forme de fichier portant l'extension "war", il convient de spécifier le nom du fichier, par exemple "monApplication.war".

[connection name]
Le nom de connexion précédemment déclaré au niveau de la directive WebAppConnection..

[url path]
L'URL par laquelle l'application Web sera joignable.

La directive "WebAppDeploy" est liée à la déclaration d'un hôte. Ainsi, si une directive "WebAppDeploy" se trouve déclarée au niveau d'une section <VirtualHost..>, l'application Web ne sera disponible que pour cet hôte virtuel.

WebAppInfo /webapp-info

Cette dernière directive permet de connaître le statut de toutes les connexions configurées et des applications déployées.
Son utilisation est très simple : WebAppInfo /URL
Le statut du serveur Tomcat pourra être consulté à l'URL http://server.name:port/webapp-info/ (le "/" à la fin est indispensable).

Après avoir modifié le fichier httpd.conf, stoppez et rédemarrez Apache.
Dans votre navigateur, saisissez l'URL suivante : http://nomduserveurApache/webapp-info/. Vous devriez voir apparaître le contenu suivant :



Rendez-vous ensuite à l'URL http://nomduserveurApache/examples/jsp/index.html. La page suivante devrait apparaître :



Au terme de cet article, vous devriez disposer d'une plate-forme permettant de développer des applications Web basées sur Java.
Attention : j'ai relevé de gros problèmes d'instabilité lors de l'utilisation de Tomcat au travers d'Apache alors que Tomcat seul fonctionne parfaitement. J'attends de tester la même fonctionnalité sur Linux pour comparer. Si quelqu'un a des indications complémentaires, n'hésitez pas à poster un message dans le Forums Tomcat.