Einleitung
Dieser Artikel beschreibt, wie man einen Tomcat Server unter Eclipse mit der Servers View verwalten kann.
Die folgenden Vorgehensweise wurde unter Eclipse 3.4.1 und Tomcat 5.5.27 getestet.
Server anlegen
In der Server View wird zunächst ein neuer Server angelegt. Dabei gehe ich davon aus, dass ein passender Tomcat in der gewählten Entwicklungslinie (bei mir 5.5.27) bereits irgendwo im Filesystem bereitsteht. Ist dies nicht der Fall, kann man einfach ein Tomcat Archiv von http://tomcat.apache.org herunterladen und irgendwo im Filesystem entpacken.
Im Eclipse wählt man dann unter Window-Show View-Others… die Servers View aus. Mit der rechten Maustaste wird ein neuer Server angelegt.
Das Vorgehen in einzelnen Schritten
Zunächst wechselt man auf die View „Servers“. Dort legt man mit dem Befehl „rechte Maustaste“ – „New“ – „Server“ einen Server an.
Optional: Den Server zunächst im Eclipse definieren
Ist noch kein passender Server installiert, muss zunächst eine Server Runtime angelegt werden.
Im nachfolgenden „New Server“ Dialog legt man den Server Typ – in unserem Beispiel ein Apache Tomcat 5.5 Server – und den Namen des Servers, sowie den Installationsort des Servers fest. Optional können auch sofort Projekte zum Server hinzugefügt werden. Die entsprechende Runtime für den Tomcat Server muss natürlich schon vorhanden sein.
Server administrieren
Mit einen Doppelklick auf den Server gelangt man in den eigentlichen Konfigurationsdialog. Hier kann man z.B. den Port für den Server abweichend vorgeben.
Ganz wichtig ist das anhaken der Option „Serve Modules without publishing“, das vereinfacht später das Deployment. Siehe hierzu auch den folgende Abschnitt „Projekte zum Server hinzufügen“. Wir verwenden zum Start des Tomcat einzelne Kontext Dateien, auch das ist über ein Checkbox steuerbar.
Weiterhin, kann man über diese Maske auch direkt in die Launch Konfiguration des Servers verzeigen wo man die Parameter für den Start des Tomcat anpassen kann.
-Dcatalina.base="I:\testprojekt\.metadata\.plugins\org.eclipse.wst.server.core\tmp1" -Djava.endorsed.dirs="I:\apache-tomcat-5.5.27\common\endorsed" -Djava.io.tmpdir="I:\apache-tomcat-5.5.27\temp" -Dfile.encoding=ISO-8859-15 -Dlog4j.configuration=log4j.tomcat.xml -Dwork.dir=I:\apache-tomcat-5.5.27\logs -Xmx512M -XX:MaxPermSize=128m -Dcatalina.home="I:\apache-tomcat-5.5.27" -Dwtp.deploy="I:\testprojekt"
Durch die Anlage des Servers werden die meisten Einträge hier schon automatisch eingetragen. Es müssen nur die Werte ergänzt werden, die Ihr für euren Server spezifisch benötigt.
Projekte zum Server hinzufügen
Auf dem zweiten Reiter des Konfigurationsdialoges kann man Webmodule zum Server hinzufügen oder auch wieder entfernen. Dabei werden nur WebProjekte im Sinne des Eclipse zum Deploy angeboten. Neben der Document Base, wird noch der Pfad hier angegeben. Dieser enthält als Defaulteinstellung zunächst den Namen des Projektes. Wir verwenden in den meisten Fällen Kurzformen des Projektnamens in Kleinbuchstaben.
Dadurch, dass wir im Server den Haken „Server Modules without publishing“ gesetzt haben, wird zur Laufzeit direkt auf den classes Ordner der Eclipse Installation verwiesen. Dadurch startet der Server deutlich schneller und man kann seinen Code in schnelleren Zyklen testen.
Weitere referenzierte Projekte
Hat man in seinem Projekt weitere Projekte referenziert (z.B. Framework Projekte die ausgelagert wurden) will man natürlich auch diese zur Entwicklungszeit nicht als JAR deployen, sondern einfach direkt das JAR File referenzieren. Diese Projekte muss man dann in den Project Properties (rechte Maustaste auf dem Webprojekt) im Unterpunkt „Java EE Module Dependencies“ eintragen. Das, im Zusammenspiel mit dem Haken „Serve modules without publishing“ führt dann zur Laufzeit dazu, dass die referenzierten Projekte im Classpath liegen und auch für den Debugger erreichbar sind.
Start und Stop der Server
Einzelne Server können dann über die Server View im Debug oder im normalen Run gestartet werden. Befindet sich der Server nicht im Zustand „Synchronized“ ist vor dem Start ein „Publish“ durchzuführen.
Es können natürlich immer nur Server parallel gestartet werden, die auf unterschiedlichen Ports laufen, aber das sagt die Fehlermeldung dann auch.
Im Prinzip kann sich also jeder Entwickler einen eigenen Server mit „seiner“ Module Zusammenstellung erstellen.
Vor- und Nachteile
Diese Vorgehensweise zur Verwaltung der Server hat einige Vorteile. So ist z.B. die Konfiguration der Server von der eigentlichen Tomcat Installation klar getrennt. Man kann auch beliebig viele Serverkonfigurationen auf einer einzigen Tomcat Installation fahren.
Aber es gibt auch mindestens einen Nachteil. Durch die Art des Serverstarts, ist es erforderlich, dass alle JAR Files im WEB-INF/lib Verzeichnis des Servers liegen. Das führt zum einen dazu, dass dieselben JAR Files mehrfach in der Entwicklungsumgebung liegen, andererseits ist es dadurch aber auch möglich feingranular die verwendeten JAR Files für alle Server getrennt zu definieren.
Danke für den interessanten Beitrag.
Schöne Grüße!
Hartmut