Advanced  Services Apache  Tomcat (Installation und Verbindung) Back Next Up Home


Download der Dateien

Apache

Die aktuelle Version findet man auf der Startseite von Apache. Dort sucht man den Absatz mit dem Hinweis "best available version". und dann den Eintrag "Win32 Binary" und folgt dem Link.

Einfacher geht es, wenn man auf www.apachelounge.com/download geht. Hier wählt man links Windows 32 oder Windows 64 an findet dann sofort die aktuellen Dateien httpd-2.4.3-winXX.zip bzw. httpd-2.4.3-winXX-ssl_0.9.8.zip.


Tomcat

Für Tomcat geht man ähnlich vor. Man besucht die Startseite und informiert sich über die aktuelle Version. Am linken Rand der Seite findet man dann unter Download einen Link auf die aktuelle Version. Die dann folgende Seite beinhaltet eine Beschreibung der aktuellen Version. Man sucht den Absatz Binary Distributions und dort den Link Windows Service Installer.


mod_jk connector

Die Connectoren dienen dazu einen WebServer mit Tomcat zu verbinden. Tomcat dient dann als Servletcontainer und der WebServer reicht Sevletanfragen an Tomcat weiter. Für den Apache WebServer wird die Konfiguration dieser Verbindung hier beschrieben. Mittlerweile haben die beiden Connectoren ihre Rollen vertauscht, war früher mod_jk2 state of the art, so ist es jetzt wieder mod_jk. Die Weiterentwicklung von mod_jk2 wurde seit langem eingestellt.
Man geht wieder zur Startseite von Apache Tomcat. Am linken Rand findet man unter Documentation den Link Tomcat Connectors. Folgt man dem Link, so findet man unter dem Absatz Headlines den Link Download the binaries for selected platforms. Hier wird man auf ein Inhaltsverzeichnis geführt, in dem man seine Betriebssystem wählen kann. Sodann sucht man sich den richtigen Connector heraus.


Apache Installation

2.4.x

Mit der aktuellen 2.4-er Reihe von Apache gibt es für Windows keinen Installer mehr. Apache kommt nun als zip-Datei (httpd-2.4.x-win32.zip oder httpd-2.4.x-win32-ssl_0.9.x.zip), die nur noch entpackt werden muß und einen vorkonfigurierten Webserver enthält. Die Konfiguration erwartet, daß das in der zip-Datei enthaltene Verzeichnis Apache24 direkt auf C: entpackt wird. Wem das nicht zusagt, kann aber die Konfiguration leicht ändern.


2.4.x in einem eigenen Verzeichnis

Die Konfigurierungsdatei httpd.conf liegt im Verzeichnis conf. In dieser Datei sind alle Einträge, die auf das Defaultverzeichnis c:/Apache24 verweisen durch das selbstgewählte Verzeichnis zu ersetzen, wobei der Vorwärtsslash beibehalten werden sollte. Es sind dies die folgenden Einträge:



Die Eingabe der Adresse http://127.0.0.1 in einen Browser sollte die Startseite von Apache bringen (Defaultport 80).

Pfad zur KonfigurierungsDatei httpd.conf

APACHE_HOME/conf

Verzeichnis für .html Dateien

APACHE_HOME/htdocs

cgi-bin Verzeichnis

APACHE_HOME/cgi-bin

Verzeichnis der module

APACHE_HOME/modules


2.2.x

Zu (irgend) einem gewählten Verzeichnis installiert sich Apache immer in ein Unterverzeichnis Apache2. Will man also etwa Apache im Verzeichnis c:\ApacheTomcat\Apache2 installieren, so darf man als Verzeichnis bei der Installation nur c:\ApacheTomcat angeben. Des weiteren muß man bei der Installation eine Serveradresse der Form xxx.yyy bzw. www.xxx.yyy eingeben. Für lokale Testinstallationen ist es egal was man hier eingibt. Zudem kann man die Eingaben später in der Konfigurierungsdatei httpd.conf immer ändern. Die fehlerfreie Installation beendet sich mit einem automatischen Start von Apache. Rechts unten auf der Taskleiste sollte die Apachefeder mit einem kleinen grünen Dreieck erscheinen. Über diesen Monitor kann man den Server ein- und ausschalten. Die Umgebungsvariable APACHE_HOME sollte gesetzt werden.


Tomcat Installation

Voraussetzung für Tomcat ist eine zur Version von Tomcat passende JavaUmgebung. Für Tomcat 7 ist dies eine JRE in der Version 1.6 oder 1.7.

Die Installation von Tomcat ist mittlerweile sehr komfortabel. Bei der Installation wird eine vorhandene Javaumgebung erkannt. Die Installation schlägt für Windows den Pfad "C:\Programme\Apache Software Foundation\Tomcat 7.0" vor. Da dieser Pfad Leerzeichen enthält muß man bei der Verbindung von Apache mit Tomcat in der Apachekonfigurationsdatei httpd.conf den Pfad zu Tomcat in Anführungszeichen angeben, was man gerne vergißt. Ein Pfad ohne Leerzeichen ist immer eine gute Wahl.

Hier einge Screenshots der Installation. Es ist sehr einfach den Port oder das Verzeichnis zu ändern.

tomcat7-install-1.jpg

tomcat7-install-2.jpg

tomcat7-install-3.jpg

tomcat7-install-4.jpg


Starten und Beenden von Tomcat

Über einen Monitor rechts in der Taskleiste kann man Tomcat als Service Starten bzw. Beenden. Die Eingabe der Adresse http://127.0.0.1:xxxx0 (xxxx steht für den gewählten Port) in einen Browser sollte die Startseite von Tomcat bringen. Die dort über Links zu erreichenden Servletbeispiele bzw. JSP-Beispiele sollten dann laufen.


Tomcat konfigurieren

Die Konfigurationsdatei von Tomcat ist TOMCAT_HOME/conf/server.xml. Will man etwa den Port nach der Installation ändern, so geschieht das hier durch Angabe eines anderen Ports unter

<Connector port="8080"
            maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
            enableLookups="false" redirectPort="8443" acceptCount="100"
            debug="0" connectionTimeout="20000"
            disableUploadTimeout="true" />

Verzeichnis der WebApplikation, die die Servletbeispiele enthält

<%TOMCAT_HOME%>/webapps/examples

Verzeichnis der Servletdateien (Sourcen und classes)

<%TOMCAT_HOME%>/webapps/examples/WEB-INF/classes

Ort der Konfigurationsdatei web.xml (für die Default-WebApplikation)

<%TOMCAT_HOME%>/webapps/examples/WEB-INF/web.xml

Verzeichnis der Startdatei index.jsp

<%TOMCAT_HOME%>/webapps/ROOT


Tomcat 6 Tips

Falls Tomcat nicht startet

Falls Tomcat nicht startet, so kann das daran liegen, daß Tomcat 6 eine Datei nicht findet. Tomcat 6 braucht um starten zu können die Datei msvcr71.dll. Diese muß entweder im Verzeichnis <%TOMCAT_HOME%>/bin oder im Windows system32 Verzeichnis liegen. Die Datei wird bei der Installation einer Javaumgebung im Verzeichnis <%JAVA_HOME%>/bin abgelegt. Man muß sie also von diesem Verzeichnis in eines der vorher erwähnten kopieren.


Falls der Tomcatmanager nicht mehr erreichbar ist

Falls der Tomcatmanager nicht mehr erreichbar ist und die Fehlermeldung This request requires HTTP authentication erscheint, so kann das daran liegen, daß Tomcat keine JavaServer Pages mehr starten kann. Der Tomcatmanager ist nämlich eine JSP-Datei. Falls also auch die JSP-Beispiele nicht mehr funktionieren, dann schaut man am besten mal in die Tomcat log-Dateien von localhost oder manager. Falls man dort die Meldung ClassNotFoundException: javax.el.ELResolver entdeckt, dann findet Tomcat ein Javaarchiv nicht (mehr). Es handelt sich um das Archiv el-api.jar im Verzeichnis <%TOMCAT_HOME%>/lib. Kopiert man dieses Archiv in das lib/ext Verzeichnis der aktuellen JRE, dann laufen die JSP wieder (Aus einem mir unbekannten Grund findet Tomcat das Archiv el-api.jar nicht mehr im eigenen Verzeichnis, kann es sich aber dann aus dem lib/ext Verzeichnis besorgen).


Apache und Tomcat mit Hilfe von mod_jk verbinden

Die Datei mod_jk.so ins modules-Verzeichnis von Apache legen.

Apache mitteilen, daß es das jk-Modul verwenden soll. Dazu muß man die Die Konfigurierungsdatei httpd.conf entsprechend ergänzen: Im LoadModules-Bereich wird folgende Zeile ergänzt.

LoadModule jk_module modules/mod_jk.so

Im Anschluß an den LoadModules-Bereich werden dann die Verbindungsdaten in einem IfModule-Tag eingetragen.

<IfModule mod_jk.c>
JkWorkersFile  APACHE_HOME/conf/workers.properties
JkLogFile      APACHE_HOME/logs/mod_jk.log
JkLogLevel     debug
JkMount        /examples/* ajp13
</IfModule>

APACHE_HOME wird natürlich durch den bei der Installation gewählten Pfad ersetzt. mod_jk.log wird als leere Datei angelegt. Der Eintrag "debug" ist sehr nützlich zur Fehlersuche. Wenn die Verbindung funzt, kann man "info" statt "debug" nehmen.

Eine Datei mit dem Namen workers.properties anlegen und ins conf-Verzeichnis von Apache legen.Diese Datei braucht Apache, um zu erfahren wie Servletanfragen weitergeleitet werden müssen, um beantwortet werden zu können. Ein Prototyp dieser Datei folgt hier im Anschluß an diese Beschreibung.


workers.properties
### begin workers.properties ###

# ================== worker list ==================
# The worker that your plugins should create and work with
# worker.list=ajp13
# default, Eintrag nicht notwendig
#
# ================== worker type ==================
# Defining a worker named ajp13 and of type ajp13
# Note that the name and the type do not have to match.
# worker.ajp13.type=ajp13
# default, Eintrag nicht notwendig
#
# ================== worker configuration ==================
# worker.ajp13.port=8009
# default, Eintrag nicht notwendig
#
# worker.ajp13.host=localhost
# default, Eintrag nicht notwendig
#
# ================== worker loadbalancing  ==================
# The loadbalancer (type lb) worker perform weighted round-robin load
worker.loadbalancer.type=lb
worker.loadbalancer.balanced_workers=ajp13
#
# Specifies the load balance factor when used with a load balancing worker.
# lbfactor must be > 0  (Low lbfactor means less work done by the worker.)
worker.ajp13.lbfactor=1
#
### End workers.properties ###

Der Port für den ajp13 Worker ist default, deshalb sind diese Einstellungen auskommentiert.

Nach den Ergänzen des mappings in workers.properties sollten die folgenden URL's paarweise das gleiche Ergebnis liefern.

Zugriff über Tomcat direkt :   http://localhost:8080/examples/servlets/servlet/HelloWorldExample
Zugriff über Apache :   http://localhost/examples/servlets/servlet/HelloWorldExample

oder auch

Zugriff über Tomcat direkt :   http://localhost:8080/examples/
Zugriff über Apache :   http://localhost/examples/


Möglicher Konflikt mit JBoss

JBoss beinhaltet nicht nur einen Beancontainer, sondern auch einen Servletcontainer und belegt den Port 8009. Braucht man zusätzlich zu Apache und Tomcat auch noch JBoss ist es einfacher Apache und Tomcat zu konfigurieren. In server.xml im Verzeichnis conf von Tomcat ändert man den AJP 1.3 Connector Port von 8009 etwa auf 7009. In workers.properties im Verzeichnis conf von Apache trägt man dann den gewählten Port ein.


Eine eigene Webapplikation einrichten

Eigene WebApplikationen sollten in einem separaten Bereich liegen. Die Servlet API Specification 2.3 legt fest, wie dieser Bereich strukturiert werden muß.

Hier ein Listing einer minimalen web.xml . Die Datei muß mit dem xml-Versionseintrag beginnen, sonst wird sie von Tomcat nicht als xml-Datei erkannt.

Beispielskonfigurierungsdatei web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  version="3.0"
  metadata-complete="true">

<web-app>

    <display-name>Beispielskonfigurierungsdatei</display-name>
    <description>
      Beispielskonfigurierungsdatei
    </description>

    <!-- Define servlets that are included in the myWebApp application -->
    <!-- ============================================================= -->

    <servlet>
        <servlet-name>MyServletTomcatName</servlet-name>
        <servlet-class>MyServlet</servlet-class>
    </servlet>

    <!-- ====================== servlet-mapping ====================== -->

    <servlet-mapping>
        <servlet-name>MyServletTomcatName</servlet-name>
        <url-pattern>/wzlbrmpft.html</url-pattern>
    </servlet-mapping>

</web-app>

Wie man am letzten Eintrag sieht, kann man über das servlet-mapping einem Servlet einen beliebigen Namen geben. Ein Servlet ist (nur) über den im url-pattern angegeben Namen ansprechbar Dieser Name wird zunächst auf einen Tomcat-internen Namen (servlet-name) abgebildet und dieser dann auf den Namen der Servletklasse (servlet-class).


Eine war-Datei deployen

Eine war-Datei ist eine zip-Datei, die die oben erläuterte Verzeichnisstruktur enthält. Legt man eine war-Datei ins Verzeichnis $TomcatHome/webapps, so wird sie von Tomcat automatisch erkannt und entpackt. Ein Servlet ist dann unter dem Namen des war-Files und dem in der web.xml angegebenen Urlpattern erreichbar.


Die Verzeichnisse /TOMCAT_HOME/common und /TOMCAT_HOME/shared

Die beiden Verzeichnisse haben eine verwandte Funktion.

Valid XHTML 1.0 Strict top Back Next Up Home