So implementieren Sie Hot Deployment und Hot Start in Eclipse/Tomcat

So implementieren Sie Hot Deployment und Hot Start in Eclipse/Tomcat

1. Hot Deployment: Das bedeutet, das gesamte Projekt neu bereitzustellen, während der Container ausgeführt wird. In diesem Fall wird im Allgemeinen der gesamte Speicher gelöscht und neu geladen. Einfach ausgedrückt helfen uns Tomcat oder andere Webserver beim Neuladen des Projekts. Diese Methode kann zu Sitzungsverlusten und anderen Situationen führen.

2. Hot Loading: Dies bedeutet, dass die kompilierte Klasse neu geladen und geändert wird, während der Container ausgeführt wird. In diesem Fall wird der Speicher nicht gelöscht und die Sitzung geht nicht verloren, es kann jedoch leicht zu einem Speicherüberlauf kommen oder die Methode kann nicht gefunden werden. Weil Speicher nicht in Objekte umgewandelt werden kann. Im Allgemeinen führt das Ändern der Struktur und des Modells einer Klasse zu Ausnahmen, das Ändern vorhandener Variablen und Methoden verursacht jedoch keine Probleme.

Hotstart der Eclipse-Konfiguration:

Im Hot-Deployment- und Hot-Loading-Prozess auf Basis von Java spielen Klassenlader eine wichtige Rolle. Ein Klassenlader kann eine bereits geladene Klasse nicht erneut laden, da sonst ein java.lang.LinkageError gemeldet wird. Die Klasse kann jedoch erneut in eine laufende Anwendung geladen werden, sofern eine neue Instanz des Klassenladers verwendet wird. Im Allgemeinen unterstützt der Debugmodus Hot Loading.

Hier stieß ich jedoch auf eine Situation, in der Eclipse mit Debug gestartet wurde, jedoch kein Hot Loading stattfand, was für die Entwicklung sehr zeitaufwändig war, da jede Änderung an der Klassendatei eine Neukompilierung erforderte. Hier gebe ich eine kurze Einführung in die Verwendung von Eclipse für Hot Loading:

Starten Sie Eclippse und suchen Sie das folgende Verzeichnis

Öffnen Sie server.xml und suchen Sie

Kopieren Sie den Code wie folgt:
<Context docBase="dreamlive" Pfad="/ROOT" reloadable="true" crossContext="true" Quelle="org.eclipse.jst.jee.server:dreamlive"/>

Diese Codezeile ändert sich beim Bereitstellen eines neuen Projekts, docBase und Quelle entsprechend. Jetzt befindet sie sich noch im Hot-Deployment-Zustand, sodass sie bei jeder Änderung der Klassendatei automatisch kompiliert wird, was zeitaufwändig ist. Als Nächstes ändern wir die Konfiguration:

Kopieren Sie den Code wie folgt:
<Context docBase="dreamlive" Pfad="/ROOT" reloadable="false" crossContext="true" Quelle="org.eclipse.jst.jee.server:dreamlive"/></Host>

Ändern Sie „reloadable“ in „false“ und fügen Sie „crossContext="true"“ hinzu, um den Hotstart zu aktivieren. Hinweis: Sie müssen mit dem Debuggen beginnen.

Wir müssen diese Konfiguration jedoch jedes Mal ändern, wenn wir ein neues Projekt bereitstellen. Wir können die dynamischen Änderungen der Datei server.xml jedes Mal beobachten, wenn ein neues Projekt bereitgestellt wird. Wenn nach Abschluss der Einstellung das Hot-Loading des Projekts nicht wirksam wird, aktivieren Sie Eclipse-->Projekt-->Automatisch erstellen und fügen Sie die automatische Kompilierung hinzu.

Die Bedeutung der einzelnen Attribute ist unten aufgeführt.

  • path gibt Ihren Zugriffspfad an
  • docBase gibt Ihren Speicherpfad an
  • „debug“ setzt den Debug-Level auf 0, was die wenigsten Informationen liefert, und auf 9, was die meisten Informationen liefert.
  • Wenn reloadable=true ist und web.xml oder die Klasse geändert werden, wird es automatisch neu geladen, ohne den Dienst neu zu starten.
  • crosscontext="true" bedeutet, dass verschiedene konfigurierte Kontexte eine Sitzung gemeinsam nutzen (optional)

Hotstart der Tomcat-Konfiguration

Die konkrete Methode ist wie folgt:

Schritt 1: Ändern Sie im Tomcat-Installationsverzeichnis die Hostkonfiguration in conf/server.xml und setzen Sie das reloadable-Attribut auf true. Fügen Sie also dem Host-Tag reloadable="true" hinzu und starten Sie Tomcat neu, damit die Konfigurationsdatei wirksam wird.

Schritt 2: Zur Datei web.xml im Ordner conf hinzufügen

<Init-Parameter>
 <param-name>Entwicklung</param-name>
 <param-value>wahr</param-value>
</init-param>

Schritt 3: Starten Sie den Tomcat-Server neu, damit die Änderungen wirksam werden.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Lösung für das Problem, dass Eclipse den Tomcat-Server bereitstellt und nicht starten kann
  • Lösung für das Problem, dass die SpringBoot-Anwendung beim Bereitstellen auf Tomcat nicht gestartet werden kann
  • Erfahren Sie in einem Artikel, wie Sie mehrere Tomcats bereitstellen und starten und Projekte migrieren

<<:  Bei verschachtelten MySQL-Transaktionen aufgetretene Probleme

>>:  Grafisches Tutorial zum Herunterladen und Installieren von MySQL 5.7 und höher

Artikel empfehlen

Tutorial zur Installation und Kennwortkonfiguration von MySQL 5.7.21

Tutorial zur Installation und Kennworteinstellung...

Detaillierte Erklärung des VueRouter-Routings

Inhaltsverzeichnis Vue-Router 1. Verstehen Sie da...

Drei Möglichkeiten, doppeltes Einfügen von Daten in MySql zu vermeiden

Vorwort Im Falle eines Primärschlüsselkonflikts o...

Natives JavaScript zur Implementierung einer zufälligen Namensaufruftabelle

In diesem Artikelbeispiel wird der spezifische Co...

Beispielcode für horizontales Balkendiagramm von Echarts Bar

Inhaltsverzeichnis Horizontales Balkendiagramm Da...

Designtheorie: Zu den Themen Schema, Ressourcen und Kommunikation

<br />In vielen kleinen Unternehmen besteht ...

Attribute und Verwendung von INS- und DEL-Tags

ins und del wurden in HTML 4.0 eingeführt, um Auto...

So schreiben Sie ein MySQL-Sicherungsskript

Vorwort: Die Bedeutung einer Datenbanksicherung l...

Die Lösung von html2canvas, dass Bilder nicht normal erfasst werden können

Frage Lassen Sie mich zunächst über das Problem s...