Java & le web
x Le web dynamique
x Java & le web

Intro à Tomcat
x Serveur d'applications
x Présentation Tomcat
x Installation
x Arborescence

Configuration
x Introduction
x Server
x Service
x Engine
x Host
x Context
x DefaultContext
x Logger
x Loader
x Realm
x Valve

Connecteurs
x Balise Connector
x Coyote HTTP/1.1

Sécurisation accès
x La balise Realm
x Memory Based
x JDBC Database
x Protéger ressources
x Cryptage password

Les Valve
x La balise Valve
x Access Log
x Single Sign-On

Fonctionnalités
x Déploiement auto.
x Class loaders

Eclipse & Tomcat
x Plug-in pour Eclipse
x Projet Tomcat
x Debugger des JSP

Créer une appli web
x Présentation
x Architecture
x Fichier web.xml
x Déploiement

Tomcat 5
x Nouveautés

Tomcat's Corner
x Crédits
x Liens
 
             
Configuration de Tomcat > fichier server.xml
             
La balise LOADER

 

 

Rôle

La balise Loader permet de configurer le class loader à utiliser pour une application web (un Context). Un class loader (littéralement, un chargeur de classes) est, dans l'absolu, un objet Java destiné à charger les ressources Java. Cette notion n'est pas introduite par Tomcat. Il s'agit d'un élément essentiel de l'architecture Java. Dans le cas qui nous occupe, le class loader d'une application web est l'objet qui va charger, lorsqu'elles seront nécessaires, les classes et librairies (plus précisément, les classes dans les librairies) accessibles pour cette webapp. En l'occurence, les ressources accessibles par une webapp sont les suivantes :

  • Les classes du répertoire WEB-INF/classes de l'application web.
  • Les classes contenues dans des archives JAR dans le répertoire WEB-INF/lib de l'application web.
  • Les classes que Tomcat met à disposition de toutes les applications web.

Voir la page traitant de la hiérarchie des class loaders dans Tomcat pour plus de détails.

Il n'est pas obligatoire de définir de Loader pour un Context. Si l'on en spécifie pas, un Loader standard (voir en fin de page) est créé. Sauf besoin spécifique, il est largement suffisant.

Balise ancêtre

Context. Il est possible de définir un Logger pour un Context.

 

Balises filles

Aucune.

 

Attributs optionnels

Nom Description
className La classe (chemin complet, packages puis nom de la classe) à utiliser comme implémentation de l'inteface org.apache.catalina.Loader. L'implémentation par défaut (voir plus bas) est utilisée lorsque ce paramètre n'est pas spécifié.
delegate Par défaut à false. Demande au class loader de suivre le modèle de délégation de Java 2. Cela signifie tenter de charger les classes demandées d'abord via les class loaders parents, avant de rechercher dans la webapp. Par défaut, c'est l'inverse qui se produit. Les ressources sont d'abord cherchées dans le webapp, avant de déléguer aux class loaders parents.
reloadable Lorsque paramétré à true, cet attribut demande à Tomcat de recharger automatiquement une application lorsqu'un changement dans ses classes (WEB-INF/classes) ou ses librairies (WEB-INF/lib) est détecté. Très utile dans les phases de développement, où l'application change bien sûr régulièrement, cette fonctionnalité alourdit l'appli (il faut monitorer les classes et librairies). En production, la logique veut qu'on laisse cet attribut à false.

 

Implémentation par défaut

L'implémentation par défaut de l'interface org.apache.catalina.Loader est org.apache.catalina.loader.WebappLoader. Elle accepte un attribut optionnel supplémentaire, debug, qui permet de définir le niveau de debugging pour ce composant. Les niveaux de debug sont croissants. 0, la valeur la plus faible, est également la valeur par défaut. Les informations de debug sont envoyées au Logger défini dans la configuration. En outre, elle reconnaît les attributs optionnels suivants :

Nom Description
checkInterval Durée, en secondes, entre deux recherches de ressources modifiées dans le webapp. Cet attribut n'est utile que si reloadable est paramétré à true. La durée par défaut est 15 secondes.
loaderClass La classe (chemin complet, packages puis nom de la classe) à utiliser comme implémentation de java.lang.ClassLoader. Il s'agit ici du class loader lui-même, pas du Loader Tomcat. Par défaut, la classe org.apache.catalina.loader.WebappClassLoader est utilisée.
workDir Répertoire temporaire dans lequel l'application pourra effectuer certaines opérations (création de fichiers, lecture-écriture...). Il est notamment utilisé pour le stockage temporaire (pendant une exécution du serveur) des JSP compilées. Si l'attribut n'est pas renseigné, le répertoire work de la webapp sera défini d'office.