Wie man Tomcat Web Apps in Eclipse richtig verwaltet?

9

Ich habe Tomcat auf meinem Rechner separat ausgeführt. Ich hatte ein Ant-Skript, das mein Projekt neu erstellen, es lokal bereitstellen und Tomcat neu starten würde. Das alles hat funktioniert, aber ich konnte die Web-App in Eclipse nicht debuggen.

Ich habe also gelernt, Tomcat in Eclipse einzurichten und meine Web-App läuft. Jetzt ist das Problem, dass ich nicht vollständig verstehe, wie man es so handhabt. Eclipse ist so eingestellt, dass mein Projekt automatisch auf Änderungen basiert, aber diese Änderungen scheinen sich nicht immer in der Web-App widerzuspiegeln. Manchmal muss ich das Projekt manuell erstellen und den Server manuell "säubern", damit die Änderungen reflektiert werden.

Gibt es irgendwo Regeln, wie man dieses Setup verwaltet? Zum Beispiel, wenn ich nur eine JSP ändere, wird sie dann automatisch synchronisiert? Wenn ich eine Servlet-Klasse ändere, muss ich das Projekt manuell neu erstellen? Sind diese Regeln konsistent, oder sollte ich jedes Mal manuell neu aufbauen und reinigen?

Ich würde es sehr schätzen, wenn mir jemand die Best-Practice-Regeln geben oder mich auf eine gute Ressource hinweisen könnte, um zu lernen, wie man diese Umgebung verwaltet.

PS. Ich benutze Eclipse 3.4.1 Java EE Paket und Tomcat v5.5

    
Shane 24.04.2009, 18:41
quelle

4 Antworten

5

Sie können Eclipse und Tomcat wie angegeben verwenden. Zuerst die Grundlagen der Einrichtung:

  1. Richten Sie in der Serveransicht einen neuen Tomcat-Server ein, der auf Ihren TOMCAT_HOME
  2. verweist
  3. Stellen Sie sicher, dass Ihr Projekt ein Eclipse-Webprojekt ist. Möglicherweise müssen Sie einen Dummy erstellen und einige der Dateien in .settings kopieren (sehen Sie sich die wst-Dateien an).
  4. Stellen Sie Ihr Projekt auf Tomcat bereit, indem Sie in der Ansicht Server mit der rechten Maustaste auf den Server klicken und dann "Projekte hinzufügen und entfernen ...", um Ihr Projekt dem Server hinzuzufügen.

Sie können Ihren Server starten und testen, so wie Sie Tomcat außerhalb von Eclipse ausgeführt haben. Wenn Sie den Server im Debug-Modus ausführen, können Sie Haltepunkte setzen und den Code durchgehen.

Wenn Sie den Server neu starten müssen, ist Eclipse normalerweise ziemlich gut darin, die Änderungen automatisch zu implementieren. Sie müssen für Änderungen an JSP-Seiten fast nie neu starten. Wenn Sie eine Klasse ändern, wird die Änderung (normalerweise) automatisch bereitgestellt, wenn Sie den Hauptteil einer Methode ändern. Wenn Sie die Signatur einer Klasse ändern (eine Methode hinzufügen oder entfernen oder Argumente dafür ändern), müssen Sie fast immer neu starten. Änderungen an Konfigurationsdateien (web.xml o.ä.) erfordern fast immer einen Neustart.

Um neu zu starten, klicken Sie einfach auf die Schaltfläche "Debug" oder "Ausführen" in der Serveransicht. Alle Ihre Änderungen werden in Tomcat umgesetzt.

Eine Sache, auf die Sie achten sollten, ist, dass in der Standardkonfiguration Ihr Verzeichnis "webapp" in TOMCAT_HOME nicht verwendet wird. Stattdessen wird ein Ordner unter Ihrem Eclipse-Arbeitsbereichsverzeichnis (WORKSPACE / .metadata / .plugins / org.eclipse.wst.server.core / tmp0) verwendet.

    
John Meagher 29.04.2009, 13:13
quelle
0

Normalerweise sollten Sie die Anwendung neu veröffentlichen, um die neuesten Änderungen zu erhalten. Vergessen Sie nicht, zuerst mit dem Dateisystem zu synchronisieren, falls Ihre Dateien extern geändert wurden. Sie können festlegen, dass Ihre Anwendung bei der Änderung automatisch neu geladen wird. Suchen Sie in der Datei server.xml Ihres Serverkonfigurationsprojekts nach dem Attribut "Automatisch neu laden". Wenn diese Option auf "True" eingestellt ist, lädt Tomcat Ihre Anwendung automatisch neu. Es ist übrigens nicht immer eine gute Idee. Geänderte JSPs sollten automatisch funktionieren, ohne dass die Anwendung neu gestartet werden muss.

    
Dima 24.04.2009 19:03
quelle
0

Wenn Sie die Struktur einer Klasse ändern, die bereits geladen und verwendet wurde (Mitglieder hinzufügen / entfernen, Methodensignatur ändern usw.), werden Ihre Codeänderungen nicht berücksichtigt. Dies ist kein Eclipse-Problem, sondern ein JVM-Problem. Wenn Sie einfache Codeänderungen vornehmen, beispielsweise logische Änderungen in einer vorhandenen Methode, werden Ihre Änderungen wirksam, nachdem die Klasse kompiliert und erneut implementiert wurde. Unabhängig davon müssen Sie, wenn Sie eine öffentliche Konstante ändern, Ihr (e) Projekt (e) neu erstellen.

    
Shai 27.04.2009 05:28
quelle
0

Ich fand zwei Dinge wichtig zu verstehen:

  • Eclipse erkennt nicht automatisch, wenn Dateien außerhalb von Eclipse geändert wurden. Wenn Sie in einem Projekt auf Aktualisieren klicken, wird dies auch von F5 übernommen. Sie können eine Einstellung auch so ändern, dass sie automatisch aktualisiert wird, wobei Änderungen jedoch nicht sofort erkannt werden (mein Bauchgefühl sagt bis zu 10 Sekunden Verzögerung)

  • Das Arbeiten mit Servern hat das Konzept, Dateien in Tomcat zu "publizieren". Dies geschieht normalerweise automatisch innerhalb einer Sekunde nach jeder Änderung. Wenn Sie viele Klassen ändern, kann das zu vielen Server-Neuladungen führen, was bei einem Kontext-Reload zu Verzögerungen führen kann (wie es bei komplexen Spring-Apps der Fall ist). Also habe ich eine Einstellung so geändert, dass sie nicht automatisch veröffentlicht wird (doppelklicke Server-Instanz)

Tom 20.05.2009 07:59
quelle

Tags und Links