Ich habe die Datei "server.xml" im conf
Ordner von Tomcat 8 bearbeitet . Ich habe ein neues Host
Tag für eine neue Website hinzugefügt .
Muss ich den Tomcat-Server neu starten?
Kann ich Tomcat dazu bringen, das neu bearbeitete zu analysieren und anzuwenden server.xml
?
configuration
tomcat
Basil Bourque
quelle
quelle
<Host>
nicht darüber<Context>
.server.xml
beim Start einmal analysiert wird. Es kann nicht ohne Neustart neu geladen werden.Antworten:
Ich würde zunächst sagen, dass die Frage nicht vollständig richtig gestellt ist, da es durchaus möglich ist, die Datei tatsächlich zu bearbeiten, ohne Tomcat neu zu starten, aber die Änderungen werden vom laufenden Prozess ignoriert.
Die eigentliche Frage wäre, wie Änderungen übernommen werden können,
server.xml
ohne Tomcat neu zu starten.Durch das Sammeln von Informationen aus dem Startvorgang und den Klassenlade- Seiten in der Online-Dokumentation von Tomcat ist es möglich, dies genauer zu verstehen.
Insbesondere wird es in serverStartup.txt beschrieben und das UML-Diagramm des Startvorgangs sowie die relevanten Teile können wie folgt zusammengefasst werden:
Dies geschieht nach der Erstellung des Bootstrap-Klassenladeprogramms der Servlet-Engine (Catalina).
Mit diesen Informationen ist jetzt klar, wann die
server.xml
Datei beim Start analysiert wird, aber sie beantwortet nicht wirklich die Frage, warum Tomcat neu gestartet werden muss, um Änderungen an dieser Datei anzuwenden.Die Antwort ist, dass ein Teil davon zur Laufzeit mit JMX dynamisch geändert werden kann . Damit dies möglich ist, musste die entsprechende MBean registriert werden (Schritt b6 oben) und SET-Operationen akzeptieren (einige MBeans haben nur eine GET-Schnittstelle).
In Ihrem speziellen Fall gibt es keine Möglichkeit, einen neuen Host zur Laufzeit zu erstellen und zu registrieren, da dies nicht vorgesehen ist. Aus diesem Grund müssen Sie den Tomcat-Prozess neu starten, damit der Bootstrap-Klassenladeprogramm dieses Objekt instanziiert und registriert JMX-Agent.
Anschließend ist es möglich, diesen Host von einem JMX-Client aus zu ändern, z. B. dem
jconsole
, der mit einem beliebigen JDK geliefert wird.Verbinden Sie sich
jconsole
mit einem JMX-fähigen Tomcat und durchsuchen Sie die Host-MBean, um alle verfügbaren Attribute zu überprüfen:und überprüfen Sie alle verfügbaren Vorgänge (einer davon wird unten als Beispiel gezeigt):
quelle
Neustart erforderlich.
Die Tomcat-Dokumentseite für
<Context>
Erwähnungen:quelle
we’re talking about <Host>, not <Context>.
-1 Entschuldigung, es ist selten, dass ich das tue, aber da muss ich ...