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

 

Fichier server.xml

La configuration du serveur Tomcat s'effectue en majeure partie dans le fichier server.xml, situé dans le répertoire TOMCAT_HOME/conf. Celui-ci contient les éléments de configuration du serveur. Avant de détailler chaque balise pour en comprendre l'intérêt et en découvrir les principaux attributs, voyons comment est constitué ce fichier XML et ce qu'il représente.

 

Architecture du fichier

Comme tout fichier XML, celui-ci comporte des balises et des attributs pour ces balises. Les balises peuvent être imbriquées les unes dans les autres. Pour plus d'informations sur les principes du XML, consultez ce site.

L'arborescence du fichier server.xml (un ensemble de balises imbriquées) représente en fait l'arborescence des composants Java de Tomcat. Ce serveur est en effet, nous l'avons déjà dit, développé en Java. En tant que tel, il est composé d'objets qui interagissent les uns avec les autres. L'arborescence de ces objets (quels objets ont quelles relations avec quels autres ?) est relativement reflétée dans le fichier de configuration. L'autre avantage d'un serveur écrit en Java est que l'on pourra choisir, pour certains des composants, l'implémentation à utiliser. Tomcat définit en effet des interfaces Java pour les différents composants. Interfaces qui peuvent être implémentées pour modifier le serveur.

 

B.A.BA du XML

Afin de bien se mettre d'accord sur les termes employés dans la configuration, voici un exemple de fichier XML tout simple :

<server port="8005">
     <service name="Standalone">
     </service>
</server>

server est une balise, tout comme service. server est la balise mère de service, qui est imbriquée dedans (située entre la balise de début <server> et la balise de fin </server>). service est une balise fille de server.

port est un attribut de la balise server, quand name est un attribut de la balise service. Les noms des attributs doivent être spécifiés entre guillemets.

 

Fiches d'identité des éléments

La configuration de Tomcat est présentée sur ce site sous forme de cartes d'identité des différentes balises du fichier XML, et donc des différents composants du serveur. Voici comment lire ces fiches d'identité, découpées de la manière suivante :

  • Rôle : pour chaque balise, on expliquera le rôle du composant qu'elle représente au sein du serveur.
  • Balise ancêtre : Au sein de quels éléments XML du fichier de configuration peut être intégrée cette balise ?
  • Balise fille : Quels éléments XML du fichier de configuration peuvent être intégrés dans cette balise ?
  • Attributs obligatoires : Les attributs qu'il faut absolument spécifier pour cette balise, afin que la syntaxe soit correcte.
  • Attributs optionnels : Autres attributs apportant des précisions à la configuration, mais non obligatoires. Les valeurs par défaut sont indiquées.
  • Implémentation par défaut : Chaque élément du fichier XML représente un composant du serveur. Comme nous l'avons dit, ces composants sont en règle générale des objets Java définis comme implémentations standards des interfaces correspondantes. Nous détaillons pour chaque composant l'implémentation Java par défaut utilisée dans Tomcat (sauf mention contraire explicite dans la configuration). Nous présentons également les attributs et/ou comportements particuliers à cette implémentation par défaut.

 

Accès aux fichies de configuration

Ci-dessous est présenté un fichier de configuration de Tomcat simple, qui permet l'accès à différentes pages détaillant la configuration. Attention toutefois, tous les éléments de configuration ne sont pas représentés ici. Reportez-vous au menu de gauche pour découvrir toutes les explications sur tous les éléments.

<Server port="8005" shutdown="SHUTDOWN" debug="0">
<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"
debug="0"/>
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"
debug="0"/>

<GlobalNamingResources>
<Environment name="simpleValue" type="java.lang.Integer" value="30"/>
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved">
</Resource>
<ResourceParams name="UserDatabase">
<parameter>
<name>factory</name>
<value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
</parameter>
<parameter>
<name>pathname</name>
<value>conf/tomcat-users.xml</value>
</parameter>
</ResourceParams>
</GlobalNamingResources>

<Service name="Tomcat-Standalone">
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector" port="8080"
minProcessors="5" maxProcessors="75"
enableLookups="true" redirectPort="8443"
acceptCount="100" debug="0" connectionTimeout="20000"
useURIValidationHack="false" disableUploadTimeout="true" />


<Engine name="Standalone" defaultHost="localhost" debug="0">
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="catalina_log." suffix=".txt"
timestamp="true"/>

<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
debug="0" resourceName="UserDatabase"/>

<Host name="localhost" debug="0" appBase="webapps"
unpackWARs="true" autoDeploy="true">

<Context path="/examples" docBase="examples" debug="0"
reloadable="true" crossContext="true">
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="localhost_examples_log." suffix=".txt"
timestamp="true"/>
<Manager className="org.apache.catalina.session.PersistentManager"
debug="0"
saveOnRestart="true"
maxActiveSessions="-1"
minIdleSwap="-1"
maxIdleSwap="-1"
maxIdleBackup="-1">
<Store className="org.apache.catalina.session.FileStore"/>
</Manager>
</Context>

</Host>
</Service>
</Server>