Je pense que c'est une bonne question.
J'ai trouvé cela aussi déroutant. J'ai installé Tomcat il y a quelques minutes (après un certain temps) et je remarque que ce sont deux endroits "webapps" différents.
dans/usr/share/Tomcat6/webapps/default_root/at/var/lib/Tomcat6/webapps/ROOT /
Le contenu des deux est le même mais aucun d'entre eux n'est un lien symbolique.
Quand j'ai commencé Tomcat, il est dit:
Citation:
Il s'agit de la page d'accueil Tomcat par défaut. Il peut être trouvé sur le système de fichiers local à l'adresse: /var/lib/Tomcat6/webapps/ROOT/index.html
Les vétérans de Tomcat6 pourraient être ravis d'apprendre que cette instance système de Tomcat est installée avec CATALINA_HOME dans/usr/share/Tomcat6 et CATALINA_BASE dans/var/lib/Tomcat6 Ainsi, sur la base de ces informations, le dossier/usr/share/... a été conservé pour la compatibilité descendante, non?
Mais selon ce que vous avez publié, les bibliothèques sont lues à partir de CATALINA_HOME au lieu de CATALINA_BASE.
Peut-être conservent-ils toujours cette référence par défaut pour empêcher d'autres systèmes de cesser de fonctionner après la mise à jour?
Bonne observation!
MISE À JOUR:
J'ai lu ceci sur: /usr/share/Tomcat6/bin/catalina.sh:
Citation:
# CATALINA_HOME May point at your Catalina "build" directory.
#
# CATALINA_BASE (Optional) Base directory for resolving dynamic portions
# of a Catalina installation. If not present, resolves to
# the same directory that CATALINA_HOME points to.
Lorsque nous lisons sur: /etc/init.d/Tomcat6:
(au début)
CATALINA_HOME=/usr/share/$NAME
(puis...)
# Directory for per-instance configuration files and webapps
CATALINA_BASE=/var/lib/$NAME
Cependant, si vous essayez de démarrer Tomcat manuellement (comme je l'ai fait il y a longtemps) avec: Sudo /usr/share/Tomcat6/bin/startup.sh
Il affiche:
Citation:
Using CATALINA_BASE: /usr/share/Tomcat6
Using CATALINA_HOME: /usr/share/Tomcat6
Using CATALINA_TMPDIR: /usr/share/Tomcat6/temp
Using JRE_HOME: /usr
touch: cannot touch `/usr/share/Tomcat6/logs/catalina.out': No such file or directory
/usr/share/Tomcat6/bin/catalina.sh: 357: cannot create /usr/share/Tomcat6/logs/catalina.out: Directory nonexistent
Alors, pourquoi ici CATALINA_BASE est réglé sur le même que CATALINA_HOME?
/ usr/share/Tomcat6/logs/n'existent pas, mais existe dans/var/lib/Tomcat6/logs /
Je vois que mes journaux écrivent dans/var/lib/... lors du démarrage de Tomcat à partir du script init.d. Il vaut donc mieux commencer à partir de là.
Je ne suis pas un expert de Tomcat mais j'avais ce même problème et j'ai pu redémarrer le serveur avec la commande: Sudo /etc/init.d/Tomcat6 restart
CATALINA_HOME - indique à "org.Apache.catalina.startup.Bootstrap" où chercher les fichiers/lib/bin et autres requis - qui sont des dépendances pour exécuter le serveur. Il s'agit essentiellement de votre répertoire de base d'installation de Tomcat.
CATALINA_BASE - attend une certaine structure de répertoires à analyser (une fois démarrée). Par exemple,/conf pour trouver server.xml et web.xml qui est spécifique à une application Web. tant que vous avez cette structure de répertoire et ce contenu, CATALINA_BASE peut être n'importe quel répertoire.
J'ai vu ça.
La manière appropriée et mignonne est de créer un script "setenv.sh" dans votre dossier CATALINA_HOME/bin (dans votre cas "/usr/share/Tomcat6/bin/setenv.sh").
Le contenu de votre setenv.sh:
#!/bin/sh
export CATALINA_BASE=/new/catalinabase/path
Il n'est donc pas nécessaire de modifier catalina.sh par vous-même. Si setenv.sh est présent dans le répertoire bin, catalina.sh l'exécutera automatiquement.
Je ne peux pas vous dire pourquoi CATALINA_HOME et CATALINA_BASE sont les mêmes dans startup.sh (resp. Catalina.sh) - c'est vraiment étrange.
Bien sûr, vous pouvez démarrer Tomcat via le script init.d. Mais parfois, vous voudrez peut-être le démarrer via startup.sh/catalina.sh (par exemple pour le débogage).
Donc, comme solution de contournement/hack, vous pouvez corriger le problème en ajoutant la ligne suivante au début de /usr/share/Tomcat6/bin/catalina.sh
export CATALINA_BASE=/var/lib/Tomcat6