J'ai édité le fichier "server.xml" dans le dossier de Tomcat 8 conf
. J'ai ajouté une nouvelle Host
balise pour un nouveau site Web.
Dois-je redémarrer le serveur Tomcat?
Puis-je demander à Tomcat d'analyser et d'appliquer la nouvelle modification server.xml
?
configuration
tomcat
Basil Bourque
la source
la source
<Host>
, non<Context>
.server.xml
analyse est effectuée une fois au démarrage. Il ne peut pas être rechargé sans redémarrage.Réponses:
Je commencerais par dire que la question n'est pas complètement correctement posée, car il est tout à fait possible de modifier le fichier sans redémarrer Tomcat, mais les modifications sont ignorées par le processus en cours.
La vraie question serait de savoir comment appliquer les modifications
server.xml
sans redémarrer Tomcat.En rassemblant des informations sur le processus de démarrage et les pages du chargeur de classe sur la documentation en ligne de Tomcat, il est possible de comprendre cela plus en détail.
Plus précisément, il est décrit dans serverStartup.txt et le diagramme UML du processus de démarrage et les parties pertinentes peuvent être résumées comme suit:
Cela se produit après la création du chargeur de classe Bootstrap du moteur de servlet (Catalina).
Avec ces informations, il est clair maintenant quand dans le processus de démarrage le
server.xml
fichier est analysé, mais cela ne répond pas vraiment à la question de savoir pourquoi il est nécessaire de redémarrer Tomcat pour appliquer les modifications à ce fichier.La réponse est que certaines parties peut être modifiée dynamiquement lors de l' exécution en utilisant JMX . Pour que cela soit possible, le MBean approprié a dû être enregistré (étape b6 ci-dessus), et doit également accepter les opérations SET (certains MBeans n'ont qu'une interface GET).
Dans votre cas spécifique, il n'y a aucun moyen de créer et d'enregistrer un nouvel hôte au moment de l'exécution car il n'y a aucune disposition pour cela, et c'est la raison pour laquelle vous devez redémarrer le processus Tomcat pour que le chargeur de classe Bootstrap instancie cet objet et l'enregistre avec Agent JMX.
Ensuite, il est possible de modifier cet hôte à partir d'un client JMX tel que
jconsole
celui fourni avec n'importe quel JDK.Connectez-vous
jconsole
à un Tomcat compatible JMX et parcourez le MBean hôte pour vérifier tous les attributs disponibles:et vérifiez toutes les opérations disponibles (l'une d'entre elles ci-dessous à titre d'exemple):
la source
Non. Redémarrage requis.
La page doc Tomcat pour les
<Context>
mentions:la source
we’re talking about <Host>, not <Context>.
-1 désolé, c'est rare que je fasse ça, mais là je dois ...