Tomcat-Kontextverwaltung

8

Das Tomcat 6.0-Dokument unter Ссылка lautet:

  

Nur wenn eine Kontextdatei nicht für die Anwendung in $CATALINA_BASE/conf/[enginename]/[hostname]/ existiert, in einer einzelnen Datei in /META-INF/context.xml in den Anwendungsdateien. Wenn die Webanwendung als WAR verpackt ist, wird /META-INF/context.xml nach $CATALINA_BASE/conf/[enginename]/[hostname]/ kopiert und umbenannt, um dem Kontextpfad der Anwendung zu entsprechen. Sobald diese Datei existiert, wird sie nicht ersetzt, wenn eine neue WAR mit einem neueren /META-INF/context.xml in der appBase des Hosts platziert wird.

Ich habe jedoch festgestellt, dass das Verzeichnis context.xml in META-INF das Verzeichnis context.xml in $CATALINA_BASE/conf/[enginename]/[hostname] ersetzt, wenn Sie eine neue WAR-Datei in das WebApp-Verzeichnis einfügen.

Gibt es eine Konfiguration, die sicherstellt, dass context.xml in $CATALINA_BASE/conf/[enginename]/[hostname]/ nicht überschrieben wird, wenn eine neue WAR-Datei bereitgestellt wird.

Bearbeiten: Ich benutze autodeploy="true" Aus dem Kommentar von JoseK verstehe ich, wenn Tomcat neue WAR-Datei sieht, alte Anwendung entlädt (was zum Löschen der Kontextdatei führt) und die die neue WAR-Datei (die zur Erstellung einer neuen WAR-Datei führt). In diesem Fall ist die obige Information aus dem Tomcat-Dokument nicht relevant. Die neue Frage kann da irgendeine Situation sein, in der das oben genannte Ding passieren kann?

    
Hemang 11.11.2010, 19:31
quelle

2 Antworten

2

Ich stimme zu, dass die Dokumentation irreführend ist. Normalerweise ist dieses Verhalten tatsächlich willkommen, da Sie bei der Bereitstellung einer neuen Version Ihrer Anwendung die aktualisierte Datei context.xml ebenfalls bereitstellen möchten. Wenn Sie Ihre context.xml-Datei manuell auf Ihrem Produktionsserver bearbeiten möchten, sollten Sie sie komplett überspringen und den Inhalt in die Datei conf / server.xml kopieren.

Ein schneller Patch / eine schnelle Lösung für Ihr Problem (würde ich selbst nicht machen) besteht darin, die context.xml-Datei als readonly zu markieren, nachdem sie zum ersten Mal bereitgestellt und aktualisiert wurde. Auf diese Weise kann Tomcat es nicht löschen / aktualisieren.

    
Pierre 12.05.2011 15:01
quelle
1

Wenn Sie vermeiden möchten, dass 'context.xml' überschrieben wird, können Sie zur Tomcat Manager-URL gehen und dann deinstallieren Sie die vorherige App und installieren Sie das neue Krieg / Ohr. Auf diese Weise haben Sie mehr Kontrolle über den Installationsprozess.

    
Naveen Babu 18.03.2011 10:07
quelle

Tags und Links