Chapitre 1 : Préambule A. Rappel sur les architectures Internet/Intranet/Extranet............. 11 1. Le protocole HTTP................... 11 a. Les méthodes HTTP................ 13 b. Les codes d état HTTP............... 14 c. Les en-têtes HTTP................. 15 d. Gestion des sessions utilisateurs : les cookies HTTP... 16 2. Les serveurs Web................... 17 3. Les technologies côté client............... 18 4. Les technologies côté serveur.............. 20 5. Les architectures n/tiers................ 21 B. Tomcat et Java................. 23 1. La fondation Apache.................. 23 2. Le projet Jakarta................... 24 3. Les évolutions de Tomcat................ 25 4. La plate-forme Java.................. 26 a. Historique..................... 26 b. Java aujourd hui.................. 27 c. Java et Tomcat................... 29
Chapitre 2 : La plate-forme JEE 5 A. La plate-forme Java Enterprise Edition (Java EE)... 33 1. Le Java Community Process (JCP)............ 34 2. Une forte dépendance : Java 5 et les annotations..... 35 B. Les composants Java EE............. 36 1. Servlet........................ 36 2. Java Server Pages : JSP................ 38 3. Enterprise JavaBeans : EJB............... 39 4. Les entités Java.................... 40 C. La plate-forme de service............. 41 1. JDBC : Java DataBase Connectivity........... 41 2. JNDI : Java Naming & Directory Interface......... 42 3. JMS : Java Message Service.............. 42 4. JavaMail....................... 43 5. JTA : Java Transaction API............... 43 6. RMI/IIOP : Remote Method Invocation/Internet InterORB Protocol................... 43 7. JCA : JEE Connector Architecture............ 44 8. XML........................ 44
Chapitre 2 D. Les applications JEE............... 44 1. Le modèle de développement MVC............ 45 2. Les différents modules JEE............... 47 a. Modules Web................... 47 b. Modules EJB................... 48 c. Modules Client................... 48 d. Modules de connecteurs............... 49 3. Structure et packaging des applications.......... 49 E. Les applications Web JEE et Tomcat........ 50 1. Structure et arborescence d une application Web...... 51 2. Le descripteur de déploiement : web.xml......... 53 3. Les sessions HTTP.................. 57 F. Les serveurs d applications JEE.......... 59 1. Rôles d un serveur d applications............ 59 2. Architecture d un serveur d applications.......... 61 3. Les produits du marché................ 62 4. Le cas Apache Tomcat 6................ 64 a. Tomcat est un moteur de Servlet........... 64 G. Pour conclure................. 65 1. Les nouveautés de Java EE 5.............. 65 2. Le futur....................... 66 32 Apache Tomcat 6
Chapitre 3 : Le serveur Apache Tomcat 6 - Installation et configuration A. Les différentes versions de Tomcat......... 69 B. Distribution de Tomcat.............. 69 C. Installation de la plate-forme Java......... 70 1. Quelle version choisir?................. 71 2. Installation et configuration............... 71 a. Sous Microsoft Windows............... 71 b. Sous Linux.................... 75 D. Installation du serveur Tomcat 6.......... 77 1. Sous Microsoft Windows................ 77 a. Installation à partir de l archive ZIP.......... 78 b. Installation à partir du package Windows........ 79 c. Création d un service Windows pour Tomcat 6..... 80 2. Sous Linux...................... 81 a. Installation à partir des paquets RPM......... 81 b. Installation à partir d une archive........... 83 c. Démarrer Tomcat 6 à l amorçage du système...... 83
Chapitre 3 E. Coupler Tomcat avec un serveur Web....... 85 1. Pourquoi utiliser un serveur Web frontal?......... 85 a. Intégration dans une architecture d entreprise...... 86 2. Les différents connecteurs pour l intégration avec un serveur Web.................. 86 a. JServ....................... 87 b. Webapp...................... 87 c. JK........................ 87 d. JK2....................... 88 e. Synthèse..................... 88 3. Utiliser le serveur Web Apache............. 89 a. Configurer Tomcat et Apache avec mod_jk....... 90 b. Installer et configurer Apache............. 90 c. Installer et configurer Tomcat 6............ 93 d. Le module mod_jk................. 94 4. Utiliser le serveur Web Microsoft IIS........... 105 a. Configurer Tomcat et IIS avec le redirecteur JK..... 105 b. Configurer Tomcat 6 pour le redirecteur JK....... 105 c. Installer et configurer le redirecteur JK......... 106 5. Configurer les serveurs Web pour servir les ressources statiques 115 68 Apache Tomcat 6
Chapitre 4 : Administration du serveur A. Architecture du serveur Tomcat 6......... 121 1. Les différents composants de Tomcat 6.......... 121 2. Arborescence de l installation.............. 123 B. Le fichier server.xml............... 125 1. Les éléments de configuration.............. 125 a. L élément <Server>................ 127 b. L élément <Service>................ 127 c. L élément <Executor>............... 128 d. L élément <Connector>............... 129 e. L élément <Engine>................ 131 f. L élément <Host>................. 132 g. L élément <Context>................ 135 h. L élément <Realm>................ 137 i. L élément <Loader>................ 138 j. L élément <Manager>............... 139 k. L élément <Valve>................. 141 l. L élément <Listener>................ 149 C. Les autres fichiers de configuration........ 150 1. Le fichier web.xml................... 150 2. Le fichier tomcat-users.xml............... 154 3. Le fichier catalina.policy................ 155
Chapitre 4 D. Configuration de ressources............ 156 1. Visibilité et portée des ressources............ 157 2. Pools de connexion et DataSource JDBC......... 159 3. Sessions JavaMail................... 167 4. JavaBeans...................... 169 5. Entrées d environnement................ 172 E. L outil d administration de Tomcat 6........ 174 1. Configuration de l accès à la console d administration.... 175 2. Naviguer dans la console d administration......... 175 3. Configuration du serveur Tomcat............. 177 120 Apache Tomcat 6
Chapitre 5 : Déploiement et gestion des applications A. Introduction au déploiement et à la gestion des applications.......... 181 B. Déployer une application dans Tomcat 6...... 181 1. Déploiement automatique d applications......... 181 2. Utiliser le répertoire webapps/.............. 182 3. L élément <Context>................. 182 4. Déploiement avec XML................. 183 C. L application manager de Tomcat 6........ 184 1. L interface texte.................... 187 a. Installer une application sous Tomcat 6........ 187 b. Mise à jour d une application............. 189 c. Démarrer et arrêter une application.......... 190 d. Recharger une application.............. 191 e. Supprimer une application.............. 192 f. Obtenir des informations............... 192 g. Les messages d erreurs du manager.......... 196 2. L interface HTML................... 197 a. Déployer des applications localement......... 198 b. Déployer des applications à distance.......... 200 3. L interface ANT.................... 200
Chapitre 5 D. Le Deployer de Tomcat.............. 204 1. Automatiser le déploiement des applications........ 204 180 Apache Tomcat 6
Chapitre 6 : La sécurité du serveur et des applications A. Introduction à la sécurité du serveur et des applications............... 209 B. Authentification, autorisation et cryptage : le modèle de sécurité JEE....... 209 1. La sécurité des applications Web JEE........... 214 C. Les 'Realms' de Tomcat............. 219 1. In-Memory Realm................... 221 2. JDBC Realm..................... 225 3. DataSource Realm................... 232 4. JNDI Realm..................... 235 5. JAAS Realm..................... 240 D. Configurer Tomcat pour le Single Sign-On...... 242 1. La Valve d authentification unique............ 243 E. Sécurisation avec SSL.............. 244 1. Génération des certificats et clés de cryptage....... 244 2. Configuration du connecteur HTTPS........... 248 3. Utiliser le serveur Web Apache comme serveur frontal HTTPS 249
Chapitre 6 F. Restrictions d accès............... 250 1. Utiliser les 'Valves'................... 251 a. Restriction par adresse IP.............. 251 b. Restriction par nom de machine........... 251 G. Le gestionnaire de sécurité : utiliser Tomcat en mode sécurisé................ 252 1. Lancer Tomcat en mode sécurisé............ 255 2. Configuration du gestionnaire de sécurité pour Tomcat.... 255 H. Autres considérations de sécurité......... 257 1. Exécuter Tomcat 6 avec un compte sans privilèges..... 257 a. Configuration sous Windows............. 257 b. Configuration sous Linux............... 259 208 Apache Tomcat 6
Chapitre 7 : Analyse et supervision A. Les fichiers journaux de Tomcat 6......... 265 1. Les fichiers journaux de Tomcat 6............ 265 a. Le système de journalisation de Tomcat 6....... 265 b. Structure du fichier logging.properties......... 265 c. Le fichier logging.properties par défaut......... 269 B. Tester la montée en charge du serveur....... 270 1. Apache JMeter.................... 270 a. Écrire des plans de test Web avec JMeter....... 272 b. Plans de test avancés : les composants de JMeter.... 278 c. Stratégie de conception des tests : Un exemple complet. 286 2. Optimisation et reconfiguration de Tomcat......... 287 a. Les paramètres d optimisation de Tomcat 6....... 288 b. La Machine Virtuelle Java.............. 292 C. Utiliser l interface JMX de Tomcat......... 294 1. Qu est-ce que JMX?.................. 294 2. JMX et Tomcat.................... 296 3. MC4J : Une console JMX................ 299
Chapitre 8 : Clustering avec Tomcat 6 A. Introduction au clustering avec Tomcat 6...... 311 B. Une solution de haute disponibilité avec Tomcat 6.. 311 1. Une infrastructure disponible et performante........ 312 C. Configuration d un cluster Tomcat 6........ 313 1. Installer plusieurs instances de Tomcat 6 sur la même machine................. 313 2. Répartition de charge avec les modules JK........ 315 a. Configuration avec Apache HTTP Server........ 317 b. Configuration avec Microsoft IIS............ 320 3. Configuration d un cluster Tomcat 6 en mode maître/esclave. 320 D. Maintenir l état des clients dans un cluster..... 321 1. La problématique................... 321 a. Des processus isolés................ 322 2. Les solutions..................... 323 a. La réplication de mémoire à mémoire......... 324 b. Les sessions persistantes sur système de fichiers.... 330 c. Les sessions persistantes en base de données...... 333 E. Déploiement d applications dans un cluster Tomcat 6. 336 1. Configuration du deployer en cluster........... 337 2. Conclusion...................... 338
Chapitre 9 : Utiliser Tomcat pour le développement A. Introduction à l'utilisation de Tomcat pour le développement.............. 341 B. Développer avec Eclipse............. 342 1. Les plug-in d Eclipse pour Tomcat............ 343 C. Développer avec Sun NetBeans.......... 356 D. Développer avec Borland JBuilder......... 363 E. Développer avec IBM Rational Application Developer. 368 1. L environnement de test Tomcat............. 370 F. Apache ANT.................. 370 1. Construction d un projet................ 373 2. Générer les archives de déploiement........... 375 3. Déployer sur le serveur................. 376 G. Intégration de librairies tierces-parties....... 378 1. Exemples avec Struts................. 378 2. Exemple avec Hibernate................ 379 3. Pour conclure.................... 380