Aufbau Apache Tomcat

Die wichtigsten Verzeichnisse beim Tomcat sind einmal „common/lib“, „conf“, „webapps“ und „work“. Die restlichen Verzeichnisse sind Systemverzeichnisse und haben für die meisten Belange eher eine untergeordnete Bedeutung. Ich lege meine Tomcats oft ins Verzeichnis „/opt/tomcat/“. Dies ist kein Tomcat Standard. Im Wesentlichen sind die neueren Tomcats ähnlich aufgebaut wie der 5.5. Einziger unterschied ist, das die Libs nicht mehr unter „common/lib“ liegen sondern direkt unter „lib/“. Weiterhin unterscheiden sie sich natürlich durch neuere Servlet-Engines. Was aber für den Serverbetrieb nicht wichtig ist.

Baumansicht der Verzeichnisstruktur eines Tomcat 5.5

|– bin
|– common
| |– classes
| |– endorsed
| |– i18n
| `– lib
|– conf
|– logs
|– server
| |– classes
| |– lib
| `– webapps
| |– host-manager
| `– manager
|– shared
| |– classes
| `– lib
|– temp
|– webapps
| `– AG_Public
`– work
`– Catalina

Das Lib-Verzeichnis

Unterhalt „common“ liegt das Verzeichnis für die ganzen Libaries die Tomcat-weit genutzt werden können. Auf diese Libs haben alle Applikationen zugriff.

Das Konfigurationsverzeichnis „conf“

Hier liegen alle Dateien die Konfiguration betreffend. Wichtig sind hier die „server.xml“ und die „web.xml“. Will man die einfache HTTP-Auth von Tomcat nutzen, ist dann noch die „tomcat-users.xml“. Es gibt weiterhin noch eine weitere wichtige Konfig die aber im „bin“-Verzeichnis liegt. Das ist die „catalina.sh“. Hier kann man noch Startoptionen für die Tomcat-JVM einstellen. Z.B. Heapsize oder GarbageCollector.

Das WebApp-Verzeichnis

Hie liegt die eigentlich Applikation. Entweder als Verzeichnis oder als WAR-Datei. Es kann auch beides nebeneinander liegen, aber auch nur eins von beiden vorhanden sein. dies obliegt den Einstellungen in der „server.xml“. Wenn beides vorhanden ist, ist es meist auch so, das wenn man das WAR löscht, auch das Verzeichnis vom Tomcat selbst entfernt wird.

Das „work“-Verzeichnis

Hier lagert der Tomcat die ganzen compilierten Klassen, Servlets und JSP. Dabei wird alles im Unterordner „Catalina“ gespeichert. Hier wiederum wird das ganze noch nach Hosts aufgeteilt. In der Regel sollte bei einer Applikation, dann auch nur ein Verzeichnis mit Namen „localhost“ da sein. Hat man in der „server.xml“ mehrere Hosts definiert, findet man die hier alle wieder. Wenn man die Vermutung hat, das der Tomcat die neuen Sourcen, welche man gerade eingespielt hat, noch nicht übernommen hat, dann sollte man den Tomcat einmal stoppen, das „work“-Verzeichnis leeren und ihn dann wieder starten. Dann ist er gezwungen alles noch mal neu zu compilieren.