J'essaie de changer l'application par défaut du serveur web Tomcat 6 pour une autre application que "Root" (dans le dossier webapps). Quelle est la meilleure façon de procéder ?
Réponses
Trop de publicités?Il existe trois méthodes :
-
Arrêtez d'abord votre Tomcat à partir de son
bin
répertoire (sh shutdown.sh
). Ensuite, supprimez tout le contenu de votre Tomcatwebapps
dossier (rm -fr *
). Ensuite, renommez votre fichier WAR enROOT.war
et enfin, lancez votre Tomcat à partir de la pagebin
répertoire (sh startup.sh
). -
Laissez votre fichier de guerre dans
$CATALINA_BASE/webapps
sous son nom d'origine. Éteindre autoDeploy et deployOnStartup dans l'élément "hôte" dans leserver.xml
fichier. Définissez explicitement tous les contextes d'application dans le fichierserver.xml
en spécifiant à la fois le chemin et docBase attributs. Vous devez le faire parce que 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 la base de données. à moins qu'il ne trouve leur Contexte dans leserver.xml
.deuxième méthode : pour apporter une quelconque modification à une application, vous devez arrêter et redémarrer Tomcat.
-
Placez votre fichier WAR en dehors du répertoire
$CATALINA_BASE/webapps
(il doit être à l'extérieur pour éviter un double déploiement). Placez un fichier de contexte nomméROOT.xml
sur$CATALINA_BASE/conf/
. L'élément unique de ce fichier de contexte DOIT avoir une valeur de docBase qui pointe vers l'emplacement de votre fichier WAR. L'élément path ne doit pas être défini - il est dérivé du nom de l'élément.xml
dans le cas présent dans ce cas,ROOT.xml
. Voir le documentation pour le conteneur Context pour les détails.
Ajout d'un <Context>
dans le <Host>
tag dans server.xml
pour Tomcat 6 résoudra le problème.
Si vous utilisez path=""
vide, vous pouvez utiliser une URL comme http://localhost/first.do
.
Dans l'ensemble des attributs de la balise contextuelle docBase="E:\struts-ITRCbook\myStrutsbook"
et reloadable="true"
puis terminer la balise contextuelle.
Cela devrait ressembler à quelque chose comme ça :
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="E:\struts-ITRCbook\myStrutsbook" reloadable="true">
</Context>
</Host>
Dans tomcat 7 avec ces changements, je suis capable d'accéder à myAPP à / et Root à /Root.
<Context path="" docBase="myAPP">
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
<Context path="ROOT" docBase="ROOT">
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
Ajouter ci-dessus à la <Host>
dans le fichier server.xml
L'application racine par défaut est généralement Tomcat Manager - qui peut être utile et que j'ai voulu conserver.
donc la façon dont j'ai fait mon app Root et gardé TCmgr était comme ça.
renommé Root en quelque chose d'autre
mv Root TCmgr
puis j'ai créé un lien symbolique par lequel Root pointe vers l'application que je veux rendre par défaut.
ln -s your app
Racine
a fonctionné pour moi et semblait être l'approche la plus simple.
--nestochan
Selon la documentation d'Apache Tomcat, vous pouvez modifier l'application en créant un fichier Root.xml. Voir ceci pour plus d'informations :
http://tomcat.apache.org/tomcat-6.0-doc/config/context.html
"L'application web par défaut peut être définie à l'aide d'un fichier appelé Root.xml."
- Réponses précédentes
- Plus de réponses