J'ai parcouru les fils qui décrivent comment configurer un WAR donné (disons abc.war) comme application web par défaut dans Tomcat.
Soit
Renommez abc.war en ROOT.war
ou
Créez un contexte ROOT.xml dans $ {Tomcat.home}/conf/Catalina/localhost avec path = "" et docBase défini sur le chemin relatif/absolu de la guerre (en gardant abc.war en dehors des webapps pour éviter un double déploiement).
Les deux solutions aboutissent à ROOT.war dans le répertoire webapps (appBase). Cependant, je souhaite conserver le nom WAR (abc.war) dans les applications Web et ne pas avoir de ROOT.war distinct pour y parvenir.
Une solution qui a fonctionné dans mon cas a été d'ajouter un contexte sous la balise <Host> dans server.xml. Mais selon Tomcat 7 Doc , il n'est pas recommandé d'ajouter du contexte directement dans server.xml.
Quelqu'un pourrait-il m'indiquer une alternative?
Merci.
approche détaillée
Première méthode:
éteignez d'abord votre Tomcat [à partir du répertoire bin (
sh shutdown.sh
)], vous devez alors supprimer tout le contenu de votre dossier d'applications Web Tomcat (rm -fr *
) puis renommez votre fichier WAR enROOT.war
enfin démarrez votre Tomcat [à partir du répertoire bin (sh startup.sh
)]
Deuxième méthode:
laissez votre fichier de guerre dans
CATALINA_BASE/webapps
, sous son nom d'origine - désactivez autoDeploy et deployOnStartup dans votre élément Host dans le fichier server.xml. définir explicitement tous les contextes d'application dans server.xml, en spécifiant à la fois le chemin et la docBase. Vous devez le faire, car vous avez désactivé tous les mécanismes de déploiement automatique de Tomcat, et Tomcat ne déploiera plus vos applications à moins qu'il ne trouve leur contexte dans le fichier server.xml.
Remarque:
que cette dernière méthode implique également que pour apporter des modifications à n'importe quelle application, vous devrez arrêter et redémarrer Tomcat.
Troisième méthode:
Placez votre fichier de guerre en dehors de
CATALINA_BASE/webapps
(il doit être à l'extérieur pour éviter un double déploiement). - Placez un fichier de contexte nomméROOT.xml
dansCATALINA_BASE/conf//
. L'élément unique de ce fichier de contexte DOIT avoir un attribut docBase pointant vers l'emplacement de votre fichier war. L'élément path ne doit pas être défini - il est dérivé du nom du fichier .xml, dans ce casROOT.xml
. Voir le Context Conteneur ci-dessus pour plus de détails.