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.