Les serveurs jee se divisent en 2 grandes familles :
Nous allons nous intéresser uniquement aux conteneurs de servlets : Il sont suffisants pour notre besoin.
Nous allons utiliser le serveur de la fondation apache : tomcat.
On commence par télécharger la dernière version 7.0.x de tomcat
On décompresse l'archive et on copie le répertoire apache-tomcat-7.0.xx dans son home directory.
On peut dès à présent lancer le serveur
$ cd ~/apache-tomcat-7.0.xx $ ./bin/startup.sh Using CATALINA_BASE: "/home/user/apache-tomcat-7.0.xx" Using CATALINA_HOME: "/home/user/apache-tomcat-7.0.xx" Using CATALINA_TMPDIR: "/home/user/apache-tomcat-7.0.xx/temp" Using JRE_HOME: "/path/to/java/jdk1.7.0_17" Using CLASSPATH: /home/user/apache-tomcat-7.0.xx/bin/bootstrap.jar"
Et aller sur la page http://localhost:8080/
C'est la page d'accueil de tomcat. Il y quelques liens et exemples accessibles depuis celle-ci.
En pratique, on y va jamais, mais au moins, on sait que tomcat est bien installé.
Voici les répertoires à la racine de tomcat :
$ cd ~/apache-tomcat-7.0.xx $ ls d---- 16/06/2011 21:27 bin les exécutables d---- 16/06/2011 21:30 conf la configuration de tomcat et des applications d---- 16/06/2011 21:27 lib les librairies (.jar) d---- 16/06/2011 21:30 logs les logs du serveur d---- 16/06/2011 21:27 temp répertoire de travail pour les applications d---- 16/06/2011 21:28 webapps les applications d---- 16/06/2011 21:30 work répertoire de travail de tomcat -a--- 16/06/2011 21:26 38657 LICENSE -a--- 16/06/2011 21:26 574 NOTICE -a--- 16/06/2011 21:26 8672 RELEASE-NOTES -a--- 16/06/2011 21:26 6836 RUNNING.txt
Et la signification des variables d'environnement qui apparaissent au démarrage :
Par défaut, HOME et BASE sont au même endroit.
Une même installation de tomcat peut donc être lancée plusieurs fois sur des ports différents afin de faire tourner différents lots d'applicaitons.
Le répertoire bin de $CATALINA_HOME contient les script startup.sh et shutdown.sh (*.bat sous windows).
Une installation de tomcat vient avec quelques applications de démonstration
$ ls ~/apache-tomcat-7.0.xx/webapps d---- 16/06/2011 21:28 docs d---- 16/06/2011 21:28 examples d---- 16/06/2011 21:28 host-manager d---- 16/06/2011 21:28 manager d---- 16/06/2011 21:28 ROOT
L'application examples est accessible sur http://localhost:8080/examples
L'application ROOT est particulière, c'est celle qui répond à la racine http://localhost:8080/.
Tomcat charge toutes les applications de ce répertoire au démarrage.
Dans ce répertoire, on peut trouver :
Simplement, les applications web java sont des archiches (zip) structurées portant l'extension .war.
La structure interne d'un war est la suivante.
Le répertoire WEB-INF est un répertoire protégé.
Ses fichiers ne sont pas accessibles depuis un navigateur web :
A la racine, on trouve les fichiers publiques accessibles depuis un navigateur : fichiers html, css, images...
Cette structure peut paraitre un peu complexe mais, avec maven ou un IDE la construction de l'archive est automatisée.
Certaines de ces applications sont protégées par autentification de type BASIC (popup login / password navigateur quand on tente d'aller sur l'application.)
C'est le cas de l'application manager qui nécessite un utilisateur avec un rôle manager-gui.
Pour des raisons de sécurité, la configuration de base n'en définit aucun.
Le fichier $CATALINA_HOME/conf/tomcat-users.xml permet de rajouter un user.
<user username="admin" password="admin" roles="manager-status"/>
Et on redémarre tomcat et l'utilisateur admin a ainsi accès à http://localhost:8080/manager/status
Pour l'interface d'admin, il faut le rôle manager-gui :
<user username="admin" password="admin" roles="manager-status,manager-gui"/>
Et la page http://localhost:8080/manager/html devient accessible.
Cette page permet d'administrer toutes les applications déployées dans le serveur.
On peut donc installer et désinstaller des applications depuis cette interface.
Le fichier tomcat-users.xml définit un ensemble d'utilisateurs valable pour toutes les applications déployées.
En sécurité, cet ensemble est appelé un realm (domaine).
Le fichier tomcat-user.xml est le fichier de configuration par défaut du Memory Based Realm de tomcat.