Eine Schritt-für-Schritt-Anleitung zur Konfiguration einer JSP-Webapp mit Apache Tomcat und Httpd.

Webapp in Apache Tomcat konfigurieren und über Httpd ausliefern


Die Migration eines alten JSP-Projektes auf einen neuen Server hat mich kürzlich dazu gebracht, etwas Zeit in Apache Tomcat zu stecken und die Konfiguration zu dokumentieren. Ausgangspunkt war eine JSP Applikation (WebApp), die über einen bestehenden Apache HTTPd Webserver ausgeliefert werden sollte.

Die folgende Beschreibung bezieht sich auf einen Windows Server, sollte sich unter Linux aber ebenso implementieren lassen.

Vorbereitung

Tomcat Virtual Host anlegen

Der gewünschte VirtualHost muss in der Server.xml im CATALINA_HOME-Verzeichnis eingetragen werden:

<Host name="www.domain.at" appBase="D:/Websites/www.domain.at/webapps" unpackWARs="false" autoDeploy="true">
    <Valve className="org.apache.catalina.valves.AccessLogValve"
        directory="D:/Websites/www.domain.at/logs" prefix="tomcat_log."
        suffix=".txt" pattern="%h %l %u %t %r %s %b" />
</Host>

Danach den Tomcat-Dienst neu starten.

WebApp einrichten

  • Fertige Applikation im Verzeichnis ROOT unterhalb des Applikationsverzeichnisses ablegen.
  • Applikation muss im Unterverzeichnis “WEB-INF” eine gültige “web.xml” Konfigurationsdatei enthalten.

Beispiel WebApplikation

webapps
+---test
   +---calendar
   ¦   +---img
   +---images
   +---WEB-INF
       +---classes
           +---com
           ¦   +---[...]
           +---dbtools
           +---test

Integration in Apache Httpd

In der worker.properties einen neuen Worker für den Virtual Host anlegen:

worker.list=workerDOMAIN
worker.workerDOMAIN.type=ajp13
worker.workerDOMAIN.host=www.domain.at
worker.workerDOMAIN.port=8009

In der Direktive (vom Apache HTTPd!) das (Unter)verzeichnis mit dem Tomcat-Worker verknüpfen:

JkMount /* workerDOMAIN

Achtung: “JkMount /test/* workerDOMAIN” mappt den Aufruf www.domain.at/test/ in das Verzeichnis www.domain.at:8009/test/ am Tomcat!