Administration du serveur A. Architecture du serveur Tomcat 6 La compréhension de l’architecture interne du serveur Tomcat 6 est un pré-requis indispensable pour bien en maîtriser l’administration et la configuration. Les opérations de configuration et de personnalisation du serveur requièrent d’intervenir sur chacun des éléments internes au serveur. Bien que la configuration par défaut puisse convenir à un grand nombre d’utilisations, les environnements de production très sollicités peuvent nécessiter un reparamétrage du serveur pour garantir une qualité de service maximum. 1. Les différents composants de Tomcat 6 L’architecture de Tomcat 6 consiste en un ensemble de composants dédiés au traitement et à la satisfaction des demandes émises par les clients via le protocole HTTP, du traitement et analyse de la requête, jusqu'à l’exécution de la ressource demandée par le client. Les composants principaux de Tomcat 6 sont appelés conteneurs tout simplement parce qu’ils contiennent d’autres composants plus spécifiques, il ne faut pas confondre cette notion de conteneur, qui sont des composants logiciels de Tomcat 6, avec le conteneur Web qui représente le serveur Tomcat 6 dans son intégralité. Le schéma qui suit fait apparaître les éléments fondamentaux de Tomcat 6, les conteneurs sont tous représentés, ce sont les éléments : - Server ã Editions ENI - All rights reserved - Service - Engine - Host - Context Guide d'administration du serveur Java EE 121 Chapitre 4 Cette hiérarchie de conteneurs et de composants est représentée d’un point de vue de la configuration, par le fichier server.xml qui est le principal fichier de configuration de Tomcat 6. L’utilisation du format XML pour ce fichier permet de bien comprendre l’imbrication des conteneurs les uns dans les autres, ainsi que la position, et, de ce fait, l’impact, des autres éléments du serveur. Ainsi, le schéma précédent met en évidence les conteneurs Context, qui représentent les applications, dans un conteneur Host, d’un point de vue de l’organisation du fichier server.xml, les conteneurs Context apparaîtront comme éléments XML enfants du conteneur Host. Exemple : <Host … > <Context … > </Context> </Host> 122 Apache Tomcat 6 Administration du serveur 2. Arborescence de l’installation L’arborescence d’installation d’un serveur Tomcat 6 se présente comme ceci : ã Editions ENI - All rights reserved Parmi ces répertoires présentés sur le schéma précédent, certains ont un contenu réservé au fonctionnement interne du serveur et il vaudra mieux éviter d’en modifier l’emplacement ou même le contenu, d’autres, par contre, sont très facilement reconfigurables et les ressources qui s’y trouvent peuvent être modifiées, de même qu’il est parfois nécessaire d’y ajouter des ressources, par exemple, des bibliothèques Java nécessaires au bon fonctionnement des applications. Le répertoire bin/ contient tous les scripts et fichiers indispensables au démarrage de Tomcat 6, les scripts de contrôles sont tous fournis en deux exemplaires : l’un portant l’extension .bat, et l’autre l’extension .sh : en effet, Tomcat 6 étant écrit en Java, donc multiplate-forme, les fichiers .bat servent au contrôle du serveur sous Windows, alors que les fichiers .sh sont la version Unix/Linux des mêmes scripts. Le répertoire lib/ est le répertoire des bibliothèques Java de Tomcat 6, son contenu ainsi que celui de ses sous-répertoires est accessible à toutes les applications Web déployées dans le serveur, mais également au serveur lui-même. Les bibliothèques Java sont des ensembles de classes packagées dans des fichiers .jar. Guide d'administration du serveur Java EE 123 Chapitre 4 Dans le cas où plusieurs applications Web ont toutes besoin d’une même bibliothèque, il peut être judicieux de copier cette bibliothèque dans ce répertoire plutôt que d’avoir à la fournir avec chacune de ces applications. Le répertoire lib/ peut également contenir les différents pilotes d’accès aux bases de données utilisés par les applications et les ressources Tomcat 6. Le répertoire conf/ contient la configuration de Tomcat 6, notamment les 4 fichiers importants que sont server.xml, tomcat-users.xml, web.xml et catalina.policy. De plus, conf/ peut également contenir le sous-répertoire Catalina/localhost qui fait référence au conteneur Host (appelé localhost par défaut), lui-même dans le conteneur Engine (appelé Catalina par défaut), ce répertoire peut contenir des fichiers de configuration pour les applications installées. Le répertoire logs/ contient les fichiers journaux du serveur Tomcat 6. Le répertoire temp/ peut être utilisé comme répertoire temporaire par les applications. Le répertoire webapps/ est le répertoire par défaut pour l’installation des applications. Il contient un certain nombre d’applications d’exemples, ainsi que l’application tomcat-docs qui fournit la documentation complète du serveur, et qui est bien sûr très précieuse. Le répertoire work/ est utilisé par Tomcat 6 pour le traitement des pages JSP et leur transformation en classes Java : tous les fichiers générés pendant cette transformation sont stockés dans ce répertoire. Chaque application possède son propre sous-répertoire pour ces fichiers temporaires. L’arborescence utilisée est du type work/<engine>/<host>/<context>, où <engine>, <host> et <context> représentent respectivement le nom des conteneurs Engine, Host et Context dans lequel cette application est installée. 124 Apache Tomcat 6 Administration du serveur B. Le fichier server.xml Le principal fichier de configuration de Tomcat 6 s’appelle server.xml, et se trouve dans le répertoire CATALINA_HOME/conf. Comme son nom l’indique, le contenu de ce fichier de configuration s’écrit en XML, cependant, il n’a pas toutes les caractéristiques d’un fichier XML, notamment parce qu’il ne possède pas de déclaration XML (<?xml version="1.0" … ?>), mais également parce qu’il n’est lié à aucun fichier pour la validation, ni DTD, ni schéma XML. Cependant, lors de son démarrage, Tomcat 6 vérifie la syntaxe des éléments déclarés dans ce fichier, aussi, il est important de bien respecter la syntaxe d’écriture et la distinction majuscule/minuscule. En fait, les erreurs commises dans ce fichier peuvent avoir deux conséquences : - le serveur ne démarre pas. Un élément est correctement positionné dans le fichier mais sa syntaxe n’est pas correcte, il faut vérifier le nom de l’élément et de ses attributs ; - le serveur démarre, mais la nouvelle configuration n’a pas été appliquée. L’élément n’est peut-être pas positionné au bon endroit dans le fichier, ou bien les valeurs avec lequel il est configuré ne sont pas correctes. ã Editions ENI - All rights reserved Le fichier server.xml, fourni par défaut avec toute nouvelle installation de serveur Tomcat 6, est très bien commenté et des exemples de configuration sont même donnés en commentaire, de sorte qu’il suffit simplement de décommenter ces exemples pour activer tel ou tel autre élément de configuration. Il est assez recommandé de faire une copie de sauvegarde de ce fichier immédiatement après une installation fonctionnelle du serveur, mais aussi avant chaque modification du contenu de ce fichier. 1. Les éléments de configuration Chacun des éléments de configuration du fichier server.xml est lié à une classe Java particulière du serveur Tomcat 6. Certains de ces éléments sont indispensables, et d’autres non, l’objectif de cette partie est de présenter précisément chacun de ces éléments. Guide d'administration du serveur Java EE 125 Chapitre 4 L’imbrication des éléments de configuration les uns aux autres est toutefois quelque chose d’assez complexe à comprendre au premier abord, voici donc une arborescence résumant l’organisation du fichier server.xml, ainsi que tous les emplacements possibles de chaque élément de configuration. Certains éléments : - doivent être présents (1) ; - doivent être présents au moins une fois (1-n) ; - peuvent être présents, et ce de multiples fois (0-n) ; - sont facultatifs (0-1). Arborescence de la configuration : 126 Apache Tomcat 6