tomcat6, eclipse 3.6 (galileo) unter ubuntu 9.10 (karmic)
Einführung
Die folgende Anleitung wurde getestet unter ubuntu 9.10 (karmic).
Bei der Installation mit apt-get
werden möglicherweise weitere packages als angegeben installiert.
Ziel dieser Anleitung ist es, sowohl tomcat6 alsauch eclipse soweit wie möglich mit ubuntu-packages zu installieren. Dies hat den großen Vorteil, dass der tomcat6-Server als auch eclipse mit automatischen updates versorgt wird.
Spätestens beim Einsatz auf einem Produktionsserver ist man auf Sicherheitsupdates für tomcat6 angewiesen. Hier bietet sich eine Installation mittels ubuntu-repository geradezu an, denn nur so werden automatische Aktualisierungen zur Verfügung gestellt.
Nebeneffekt: Es ist für gewöhnlich so, dass man innerhalb einer ubuntu-Version nur Sicherheitsaktualisierungen bekommt, die die Funktionalität der Software möglichst nicht verändern. Infolgedessen werden Sicherheitsupdates auch auf ältere Versionen zurückportiert, auch wenn bereits neuere Versionen mit neueren Features verfügbar sind.
Für Produktionsumgebungen sind insbesondere zwei Dinge wichtig:
- Sicherheitsaktualisierungen müssen verfügbar sein und eingespielt werden können
- Das einspielen von Sicherheitsaktualisierungen darf die Stabilität und auch die Funktionalität von Anwendungen möglichst nicht beeinträchtigen
Genau darauf zielen die Sicherheitsupdates von ubuntu und auch debian ab: Sichere Software die möglichst langfristig ohne Anpassungen auskommt.
Das im Folgenden beschriebene Entwicklersystem zielt darauf ab, versionsgleich zu einem entsprechenden Produktionssystem zu sein. Der Vorteil ist hierbei, dass sich ein versionsgleiches Produktionssystem im Idealfall exakt gleich verhalten wird wie das Produktionssystem.
Da tomcat6 zum Zeitpunkt der Tests für debian lenny noch nicht im repository verfügbar war, wurde debian 9.10 (karmic) gewählt. Vermutlich funktioniert die Anelitung auch unter ubuntu 10.04 (lucid) und mit Fremd-Repos auch unter debian lenny.
Installation von tomcat und eclipse
Installation von tomcat6 und eclipse:
apt-get install tomcat6 eclipse
eclipse starten im Startmenü
Eclipse update source eintragen:
http://download.eclipse.org/releases/galileo
http://subclipse.tigris.org/update_1.6.x
Komponenten zum Installieren auswählen:
- web komplett
- xml komplett
- java ee development komplett
- tigris subclipse installieren
- subversion
- subversion-tools
Eclipse schließen.
Tomcat einrichten
Falls der Port des tomcat verändert werden soll, sollte man das jetzt machen in der /etc/tomcat6/server.xml
, z. B.
<Connector port="8111" protocol="HTTP/1.1" …>
Wenn man diesen Port später ändert, dann muss man ihn auch unter eclipse später wieder anpassen (Rechtsklick auf Server → Open und dort den http Port ändern) Wenn man nicht gerade gerade neu beginnt, am Besten Workspace-Pfad umbenennen, sodass Eclipse einen neuen Workspace erstellt. Dies ist vor allem nötig, wenn man bereits versucht hat, einen Server neu anzulegen, aber die folgenden Symlinks noch nicht vorhanden waren. Statt neuem Workspace kann man vermutlich auch bestimmte Dateien löschen oder editieren. Symlinks anlegen:
cd /usr/share/tomcat6
sudo ln -s /var/lib/tomcat6/conf conf
cd /etc/tomcat6/conf
sudo ln -s ./policy.d/03catalina.policy catalina.policy
Rechte setzen:
cd /etc/
sudo chown -R <user> tomcat6
Wenn man seine Webapps hier ablegen möchte:
cd /var
mkdir webapps
chown <user> webapps
Tomcat deaktivieren
Im Gegensatz zu einem Produktionssystem sollte auf dem Entwicklungssystem verhindert werden, dass der tomcat6 bereits läuft.
Stattdessen muss der tomcat6 aus eclipse heraus gestartet werden. Hintergrund ist, dass geänderter Java-Code einer Anwendung vom tomcat6 erst mit Neustart des tomcat6 verwendet wird.
Außerdem möchte man die stdout
-Ausgaben des tomcat6 in einer Console in eclipse ausgeben. Auch hierzu muss der tomcat6 aus eclipse heraus gestartet werden.
cd /etc/init.d
tomcat6 beenden
sudo ./tomcat6 stop
Automatischen Start von tomcat6 verhindern:
sudo update-rc.d -f tomcat6 remove
Ausgabe ist dann
Removing any system startup links for /etc/init.d/tomcat6 ...
/etc/rc0.d/K08tomcat6
/etc/rc1.d/K08tomcat6
/etc/rc2.d/S92tomcat6
/etc/rc3.d/S92tomcat6
/etc/rc4.d/S92tomcat6
/etc/rc5.d/S92tomcat6
/etc/rc6.d/K08tomcat6
Das funktioniert so nur bei ubuntu/debian Linux. Bei anderen Linux-Systemen muss tomcat6 aus allen Runlevels entfernt werden. Bei SuSE kann man den Runlevel-Editor von yast verwenden. Oder man kann die symlinks in /etc/init.d/rcX.d
bzw. /etc/rcX.d
löschen, wobei X
der jeweilige Runlevel ist. Der Verzeichnisname kann bei verschiedenen Linux-Distributionen variieren.
Integration von tomcat6 in eclipse 3.5 (galileo)
Wie in den Screenshots:
Window → Preferences → Server → Runtime Environment → Add
Apache → Apache Tomcat v6.0
→ "Create a new Local Server" aktivieren
→ Next
Pfad eintragen:
/usr/share/tomcat6
JRE: Workbench default JRE
Wichtig ist, dass man "Download and Install" nicht verwendet, denn hier wird der Quellcode einer älteren tomcat6-Version installiert, die ursprünglich von eclipse vorgesehen war.