Ich bin neu in Tomcat
. Wir haben eine Entwicklungsmaschine mit ungefähr 5 Apps. Obwohl es ein Entwickler ist, wird es von unseren Kunden beim Testen ziemlich häufig verwendet.
Nehmen wir also an, wir müssen eine kleine Änderung an einer Klassendatei vornehmen. Im Moment müssen wir Tomcat herunterfahren (was sich auf die anderen vier Apps auswirkt), die WAR
Datei (und das Web-App-Verzeichnis) löschen , die neue WAR
Datei erneut bereitstellen und neu starten Tomcat
.
Dies stört natürlich einige Leute, da alle angemeldeten Sitzungen für alle Apps zerstört werden.
Gibt es einen besseren Weg, dies zu tun? Ich meine, gibt es eine Möglichkeit, nur die KLASSE neu zu laden, die sich geändert hat, anstatt alles auf dem Entwicklungscomputer?
Vielen Dank.
tomcat
deployment
war
cbmeeks
quelle
quelle
Antworten:
Haben Sie versucht, die Manager-Anwendung von Tomcat zu verwenden ? Sie können damit die Bereitstellung von Kriegsdateien aufheben / bereitstellen, ohne Tomcat herunterfahren zu müssen.
Wenn Sie die Manager-Anwendung nicht verwenden möchten, können Sie die War-Datei auch aus dem Webanwendungsverzeichnis löschen. Tomcat stellt die Anwendung nach kurzer Zeit wieder bereit. Sie können dann eine Kriegsdatei zurück in das Verzeichnis kopieren, und Tomcat stellt die Kriegsdatei bereit.
Wenn Sie Tomcat unter Windows ausführen, müssen Sie möglicherweise Ihren Kontext so konfigurieren , dass verschiedene Dateien nicht gesperrt werden.
Wenn Sie absolut keine Ausfallzeiten haben können, sollten Sie sich die parallelen Bereitstellungen von Tomcat 7 ansehen. Sie können mehrere Versionen einer Webanwendung mit demselben Kontextpfad gleichzeitig bereitstellen. Die Regeln zum Abgleichen von Anforderungen mit einer Kontextversion lauten wie folgt:
quelle
Es gibt mehrere einfache Möglichkeiten.
Berühren Sie einfach web.xml einer beliebigen Webanwendung.
Sie können auch eine bestimmte JAR-Datei in WEB-INF / lib aktualisieren und dann web.xml berühren, anstatt die gesamte War-Datei zu erstellen und erneut bereitzustellen.
Löschen Sie das Verzeichnis webapps / YOUR_WEB_APP. Tomcat beginnt innerhalb von 5 Sekunden mit der Bereitstellung von war (vorausgesetzt, Ihre war-Datei befindet sich noch im Ordner webapps).
Im Allgemeinen wird das Überschreiben von War-Dateien mit einer neuen Version von Tomcat automatisch neu bereitgestellt. Wenn nicht, können Sie web.xml wie oben erläutert berühren.
Kopieren Sie über ein bereits explodiertes "Verzeichnis" in Ihren Webapps-Ordner
quelle
$CATALINA_BASE/conf/context.xml
. Die WEB-INF / web.xml wird auf Änderungen überwacht. Andere Ressourcen können dort bei Bedarf einfach aufgelistet werden.Im conf-Verzeichnis von apache tomcat finden Sie die Datei context.xml. In diesem Bearbeitungs-Tag als < Context reloadable = "true" >. Dies sollte das Problem lösen und Sie müssen den Server nicht neu starten
quelle