Wie man richtig verwalten Tomcat-web-apps innerhalb von Eclipse?
Ich verwendet, um führen Sie Tomcat separat auf meinem Rechner. Ich hatte ein Ant-Skript, das wieder aufbauen würden mein Projekt, stellen Sie Sie lokal, und starten Sie Tomcat neu. Das alles funktioniert ok, aber ich war nicht in der Lage, um das Debuggen der web-app innerhalb von Eclipse.
So lernte ich, wie zu setup Tomcat innerhalb von Eclipse und habe meine web-app läuft. Das problem ist jetzt, dass ich nicht vollständig verstehen, wie die Verwaltung es auf diese Weise. Eclipse automatisch erstellen mein Projekt auf änderungen, aber diese änderungen scheinen nicht immer spiegelt sich in der web-app. Manchmal muss ich manuell erstellen Sie das Projekt, und manuelles "reinigen" der server für die änderungen übernommen werden.
Gibt es Regeln, die irgendwo über den Umgang mit diesem setup? Zum Beispiel, wenn ich nur ändern Sie eine JSP-dann wird es automatisch synchronisiert werden? Wenn ich eine servlet-Klasse, dann muss ich manuell erstellen Sie das Projekt neu? Sind diese Regeln konsistent, oder soll ich einfach manuell neu und sauber, jedes mal?
Ich würde es wirklich schätzen, wenn jemand könnte mir die best-practice-Regeln oder zeigen Sie mir eine gute Ressource, um zu lernen, wie die Verwaltung dieser Umgebung.
PS. Ich bin mit Eclipse 3.4.1 Java-EE-Paket und Tomcat v5.5
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie mit Eclipse und Tomcat in der Weise, die Sie erwähnen. Zuerst die Grundlagen, wie man es einrichten:
Können Sie Ihre server und testen Sie es aus wie Sie ausgeführt wurden, Tomcat außerhalb von Eclipse. Wenn Sie den server im Debug-Modus können Sie breakpoints setzen und Schritt durch den code.
Als für, wenn Sie müssen neu starten, den server-Eclipse ist in der Regel ziemlich gut über die automatische Bereitstellung der änderungen. Sie werden so ziemlich nie neu starten müssen, für änderungen an jsp-Seiten. Wenn Sie änderungen an einer Klasse wird automatisch auch die Bereitstellung der Veränderung (in der Regel) wenn Sie den Körper der Methode. Wenn Sie die Signatur einer Klasse (hinzufügen oder entfernen einer Methode oder ändern args für Sie) Sie werden fast immer neu starten zu müssen. Alle änderungen an den Konfigurationsdateien (web.xml oder ähnlich) auch fast immer ein Neustart erforderlich.
Neu zu starten, klicken Sie einfach auf den "Debug" oder "Run" - button in der Server-Ansicht. Alle änderungen werden umgeschichtet in Tomcat.
Einer Sache zu beachten ist, dass in der Standard-Konfiguration deine "webapp" Verzeichnis TOMCAT_HOME nicht verwendet werden. Es wird stattdessen einen Ordner in Ihrem Eclipse-workspace-Verzeichnis (WORKSPACE/.Metadaten/.plugins/org.eclipse.wst.server.core/tmp0).
Sollten Sie normalerweise veröffentlichen der Anwendung erhalten Sie die neuesten änderungen, vergessen Sie nicht zu synchronisieren mit Datei-system-zunächst im Falle Ihrer Dateien geändert extrernally.
Sie können festlegen, dass Ihre Anwendung wird automatisch neu geladen, wenn Sie geändert, look für Auto-reload-Attribut in server.xml Ihre server-Konfigurations-Projekt. Wenn auf true gesetzt, tomcat wird automatisch laden Sie Ihre Anwendung. Es ist nicht immer eine gute Idee übrigens.
Geänderten JSP ' s automatisch arbeiten sollte, keine Notwendigkeit, neu zu starten, die applciation.
Wenn Sie ändern die Struktur einer Klasse bereits geladen und verwendet werden (hinzufügen/entfernen von Mitgliedern ändern der Signatur der Methode etc.) Ihre code-änderungen werden nicht widergespiegelt. Dies ist nicht ein eclipse-Problem, sondern ein JVM-Problem. Wenn Sie auf einfache code-änderungen, wie Logik, Veränderungen in einer bereits vorhandenen Methode dar, Ihre änderungen werden wirksam, nachdem die Klasse kompiliert und erneut bereitgestellt.
Unabhängig davon, dass, wenn Sie eine öffentliche Konstante, müssen Sie Ihr Projekt neu erstellen(s).
Fand ich zwei Dinge, die wichtig zu verstehen:
Eclipse nicht automatisch erkennen, wenn Dateien verändert wurden, die außerhalb von Eclipse. klicken auf Aktualisieren auf ein Projekt bedeutet das, so funktioniert die F5-Taste. Sie können auch ändern Sie die Einstellung für die automatische Aktualisierung, die jedoch nicht erkennt, werden die änderungen sofort (mein Bauchgefühl sagt bis zu 10 Sekunden Verzögerung)
Arbeiten mit Servern hat das Konzept der "Publishing" - Dateien, die auf dem Tomcat. Dies geschieht in der Regel automatisch innerhalb einer Sekunde nach jeder Veränderung. Ändern viele Klassen führen kann viele server geladen, das kann ein ziehen, wenn ein Kontext-reload dauert einige Zeit (wie komplexen Feder-apps sicherlich tun). Also habe ich eine Einstellung geändert, nicht zu veröffentlichen automatisch (doppelklicken Sie auf Server-Instanz)