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

Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.7.21 winx64

Dieser Artikel fasst die Hinweise zur Installatio...

Lösen Sie das Problem der Groß- und Kleinschreibung der Linux+Apache-Server-URL

Ich bin heute auf ein Problem gestoßen. Beim Eing...

Detaillierte Erläuterung der Transaktionsisolierungsebenen der MySQL-Datenbank

Isolationsebene für Datenbanktransaktionen Es gib...

Sechs mit CSS3 implementierte Randübergangseffekte

Sechs EffekteImplementierungscode html <h1>...

So konfigurieren Sie Java-Umgebungsvariablen im Linux-System

Konfigurieren von Java-Umgebungsvariablen Hier we...

Einige Erfahrung im Aufbau des React Native-Projektframeworks

React Native ist ein plattformübergreifendes Fram...

Prozess des Klassenlademechanismus von Tomcat und Quellcodeanalyse

Inhaltsverzeichnis Vorwort 1. Strukturdiagramm de...

Player in Webseite einbetten Einbettungselement Autostart falsch ungültig

Kürzlich musste ich einen Player in eine Webseite ...

Analyse des Sperrmechanismus der MySQL-Datenbank

Bei gleichzeitigen Zugriffen kann es zu nicht wie...

Klassischer MySQL-High-Level-/Befehlszeilenvorgang (schnell) (empfohlen)

Da ich lernen muss, wie man Server und Datenbanke...

Analyse und Behandlung von Bildlaufleisten in HTML und eingebettetem Flash

Bei der Entwicklung begegnen wir häufig dieser Sit...

Vue-Router-Verlaufsmodus, serverseitiger Konfigurationsprozess-Datensatz

Geschichtsroute Der Verlaufsmodus bezieht sich au...

WeChat-Applet implementiert ein einfaches Würfelspiel

In diesem Artikel wird der spezifische Code des W...

Vergleichende Analyse von IN und Exists in MySQL-Anweisungen

Hintergrund Als ich kürzlich SQL-Anweisungen schr...