Installation de Tomcat et de Eclipse

  1. Créer la variable d'environnement pour pointer sur le répertoire racine de votre JDK ( ex c:\jdk1.3.1 )
  2. Installer Tomcat à partir de c:\stagiaire\jakarta-tomcat-5.0.14.zip en le décompressant dans le répertoire de votre choix. 
    A partir de maintenant %TOMCAT_HOME% désigne le répertoire d'installation de Tomcat sans qu'une variable d'environnement n'ait été créée pour autant.  Il est utile de créer un raccourci sur %TOMCAT_HOME%\bin\startup.bat pour les futurs et fréquents redémarrage du serveur:
  3. Installer Eclipse à partir de c:\stagiaire\eclipse-SDK-2.1.2-win32.zip
  4. Tester que Tomcat est bien installé en cliquant sur le lien suivant : http://localhost:8080/

Création d'une webapp

  1. Créer un projet Java sous Eclipse en spécifiant le répertoire de votre projet.
    Créer le répertoire /WEB-INF/classes et préciser le default output folder comme étant ce répertoire.
    Cliquer sur l'onglet Library, bouton Add external JARs... et ajouter à partir du répertoire %TOMCAT_HOME%\common\lib\servlet-api.jar pour que le projet puisse compiler en utilisant le bytecode des servlets
  2. Créer un fichier web.xml à partir de%TOMCAT_HOME%\conf\web.xml comme modèle
  3. Ajouter dans %TOMCAT_HOME%\conf\server.xml le contexte de votre application. Cf déploiment d'un contexte sous Tomcat

Installation d'une web-app sous Tomcat

Il existe plusieurs manières de déployer une web-app sous Tomcat.

Ces différents méthodes fournissent plus ou moins de stabilité ou plus ou moins d'agilité lors des tests et du développement

Si vous avez un Tomcat 4.x, préférez la méthode 3

Si vous avez un Tomcat 5.x, préférez la méthode 4

  1. Déploiment d'un fichier WAR

    Il est au préalable nécessaire d'avoir créé le fichier WAR. Il faut alors le copier sous le répertoire webapps de Tomcat. Le fichier sera décompressé lors du démarrage de Tomcat dans un répertoire portant le même nom que le fichier WAR.

    L'application sera disponible à travers http://hote/Nom_ du_ WAR_sans_extension

    Pour un redéploiment, il est nécessaire d'effacer le répertoire créé par Tomcat avant d'écraser le précédent WAR, puis de redémarrer Tomcat

    Cette méthode est très peu pratique lors du développement car le répertoire doit être effacé à chaque redéploiment, le fichier WAR doit être créé à chaque fois, copié, ...

  2. Déploiment d'une application web décompressée sous le répertoire webapps de Tomcat

    Plus besoin de créer un War à chaque modification de votre application web !

    La dificulté réside dans le fait qu'il faut indiquer à l'IDE (outil de développement) de créer un répertoire correspondant au projet sous le répertoire webapps de Tomcat avec la structure spécifiée par Sun pour les applications web ( classes sous /WEB-INF/classes, ... ).

    L'application sera disponible à travers http://hote/Nom_ du_ WAR

    Pour un redéploiment, il suffit de recompiler les classes, puis de redémarrer Tomcat ou mieux de signaler à Tomcat à travers le Manager de recharger la webapp ( voire appendice)

    Cette méthode est plus souple que la précédente. Il s'agit principalement de faire attention à l'endroit où le projet est créé, et où seront compilées les classes. L'inconvénient est que la webapp est sous Tomcat, alors que beaucoup de personnes bien ordonnées souhaiteraient séparer les programmmes des applications. En effet, Tomcat au cours de modifications de sa configuration pourra dégénérer et nécessitera d'être réinstallé.

  3. Déploiment d'une application ailleurs que sous webapps

    L'application peut être placée dans n'importe quel répertoire, pourvu qu'elle respecte la structure des applications Web java et qu'elle soit déclarée à Tomcat.

    Pour cela, il faut éditer avec précaution le fichier server.xml dans le répertoire conf de Tomcat. En faire une copie serait une bonne précaution.

    Rechercher :

    	<!--
              <Context path="" docBase="ROOT" debug="0"/>
            -->
            
    et ajouter à la suite :
    	
              <Context path="/monapplication"; docBase="c:\Chemin_Vers_Mon_Application" />         
            

    L'application est alors accessible à travers http://hote:8080/monapplication/resource_de_l'app

  4. L'interface Manager

    Elle est accessible à partir de la page d'accueil de Tomcat, puis un clic sur le lien "Tomcat manager". Il faut avoir mémorisé le couple identifiant/mot de passe lors de l'installation de Tomcat pour accéder au manager. Si Tomcat n'a pas demandé ce couple alors il faut éditer %TOMCAT_HOME%\conf\tomcat-users.xml pour donner à un utilisateur le rôle de manager.

    Elle permet d'administrer les applications web installées sous le serveur avec une interface homme machine HTML. Il est possible de recharger une application web lorsque des classes ont été modifiées et recompilées en cliquant sur le lien correspondant à l'application web.

    Par contre, si le descripteur web.xml est modifié, il est alors nécessaire de cliquer sur Arrêter puis Démarrer.

    Le mot de passe est celui choisi lors de l'installation de Tomcat. On peut le retrouver dans le fichier tomcat-users.xml dans le répertoire conf de Tomcat

Appendice

Déploiment de la première servlet : Résumé


web.xml
	 
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
	<servlet>
		<servlet-name>myfirstservlet</servlet-name>
		<servlet-class>servlets.Servlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>myfirstservlet</servlet-name>
		<url-pattern>/timeservlet</url-pattern>
	</servlet-mapping>
</web-app>	 
	 
	 

Structure des répertoires


La servlet est alors accessible à travers
http://localhost:8080/time/timeservlet, après redémarrage de Tomcat.
Avec Tomcat version antérieure à 5
server.xml
<Server>...

     <Context path="/time" docBase="c:\webapps\WebAppRoot;" />
	 

....</Server>