TOMCAT

De TwisterWiki

PRESENTATION

  • Tomcat est un serveur d'application écrite en java comme Websphere ou Jboss
  • Tomcat écoute par défaut sur les port 8080 et 8009
    • Le port 8080 permet d’accéder au manager si il est installé et aux webapps
    • Le port 8009 est utilisé pour communiqué avec apache et vi le mod_jk

INSTALLATION

  • Il existe deux méthodes d'installation pour mettre en place tomcat
    • En utilisant le paquets disponible sous Debian
    • En téléchargeant sur apache.org le tgz

Installation en mode "tgz"

  • C'est le mode d'installation que je préfère car tous les fichiers sont au même endroit et permet d'installer une version précise et faire cohabiter plusieurs tomcat
  • Télécharger un jdk chez oracle (anciennement sun)
  • Installer le jdk dans /usr/local
  • Faire un lien symbolique de /usr/local/jdk1.7.0_02_x64 vers /usr/local/jdk
  • Télécharger la version souhaitée de Tomcat (4, 5, 5.5, 6, 7) sur le site apache.org
  • Décompresser l'archive dans /usr/local
  • Faire un lien symbolique de /usr/local/apache-tomcat-7.0.30 vers /usr/local/tomcat
  • Créer un un user tomcat
  • Créer un script de démarrage basique
#! /bin/bash
#
### BEGIN INIT INFO
# Provides:          tomcat
# Required-Start:    $local_fs $remote_fs $network
# Required-Stop:     $local_fs $remote_fs $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start/stop tomcat server
### END INIT INFO
 
NAME="Tomcat 7.0.30"
TOMCAT_HOME=/usr/local/tomcat
CATALINA_HOME=/usr/local/tomcat
JAVA_HOME=/usr/local/jdk
CATALINA_OPTS="-Xms2048m -Xmx2048m -XX:MaxPermSize=128m -Djava.awt.headless=true"
TOMCAT_USER=tomcat
export TOMCAT_HOME CATALINA_HOME JAVA_HOME CATALINA_OPTS TOMCAT_USER
cd $TOMCAT_HOME/logs
case "$1" in
   start)
      echo -ne "Starting $NAME.\n"
      /bin/su $TOMCAT_USER $TOMCAT_HOME/bin/startup.sh
   ;;
   stop)
      echo -ne "Stopping $NAME.\n"
      /bin/su $TOMCAT_USER $TOMCAT_HOME/bin/shutdown.sh
   ;;
   restart)
      echo -ne "Stopping $NAME.\n"
      /bin/su $TOMCAT_USER $TOMCAT_HOME/bin/shutdown.sh
      sleep 10
      echo -ne "\n"
      echo -ne "\n"
      echo -ne "Starting $NAME.\n"
      /bin/su $TOMCAT_USER $TOMCAT_HOME/bin/startup.sh
   ;;
   *)
      echo "Usage: /etc/init.d/tomcat {start|stop|restart}"
      exit 1
   ;;
esac
exit 0

Les dossiers principaux

 ------------------------------------------------------------------------
| Nom du dossier | Description                                           |
|----------------|-------------------------------------------------------|
| bin            | Contient les scripts de démarrage                     |
|----------------|-------------------------------------------------------|
| conf           | Contient les fichiers de configuration                |
|----------------|-------------------------------------------------------|
| lib            | Contient les librairies chargées par tomcat           |
|----------------|-------------------------------------------------------|
| logs           | Contient les fichiers de log de tomcat                |
|----------------|-------------------------------------------------------|
| webapps        | Contient les webapps (sites web)                      |
|----------------|-------------------------------------------------------|
| work           | Contient les fichiers de travail de tomcat.           |
|                | ce dossier peut être vider avant de redémarrer Tomcat |
|                | en cas de soucis apres une mise à jour de webapps     |
 ------------------------------------------------------------------------

les fichiers de configuration

  • Les fichiers de configuration sont dans /usr/local/tomcat/conf/
 -------------------------------------------------------------------------
| Nom du fichier      | Description                                       |
|---------------------|---------------------------------------------------|
| catalina.properties | Contient les paths pour des librairies jar        |
|---------------------|---------------------------------------------------|
| context.xml         |                                                   |
|---------------------|---------------------------------------------------|
| logging.properties  | définit le format des logs de Tomcat              |
|---------------------|---------------------------------------------------|
| server.xml          | fichier de configuration principal de Tomcat      |
|---------------------|---------------------------------------------------|
| tomcat-users.xml    | permettant de définir les accès au manager        |
|---------------------|---------------------------------------------------|
| web.xml             | fichier de configuration (contient les types mime)|
 -------------------------------------------------------------------------

Le manager

  • Le manager permet de réaliser quelque taches de maintenance
    • Arrêter une webapps ou context
    • Recharger un context
    • Supprimer un context
    • Mettre à jour un context
    • Voir le nombre de sessions par context
    • Déployer un nouveau context

Automatisation des taches

  • Grace à l’outil Ant, il est possible de réaliser des scripts pour réaliser des taches d'administration
    • Ant est un outils qui exécute des commandes lues dans un fichier au format xml (build.xml)
    • Il est possible de lister les context d'un serveur, arrêter, démarrer, recharger, déployer un context avec cet outil
    • Ant à besoin de se connecter au manager de tomcat afin de réaliser toutes ces taches.

démarrer un context

<target name="start" description="Start Tomcat context" depends="showInfos,input-context-name">
 <start url="${tomcat.manager.url}"
    username="${tomcat.manager.username}"
    password="${tomcat.manager.password}"
    path="/${context.name}"/>
 </target>

stopper un context

<target name="stop" description="Stop Tomcat context" depends="showInfos,input-context-name">
 <stop url="${tomcat.manager.url}"
    username="${tomcat.manager.username}"
    password="${tomcat.manager.password}"
    path="/${context.name}"/>
 </target>

lister les context

<target name="list" description="List Tomcat context" depends="showInfos">
 <list url="${tomcat.manager.url}"
    username="${tomcat.manager.username}"
    password="${tomcat.manager.password}"/>
</target>

ERREUR AU LANCEMENT DE TOMCAT

  • La Jvm n'est pas en mesure d'allouer la mémoire définie par les variable Xms et Xmx
Error occurred during initialization of VM
Could not reserve enough space for object heap