Am Donnerstag, 4. Juli 2002 14:24 schrieb administrative account for eregion.de:
wie installier ich beim tomcat auf suse 8 ein servlet, so dass es unter einer ganz bestimmten url zu sehen ist?
Wenns nur unter einem Account zu nutzen sein soll, brauchst Du virtual
Server im tomcat, wie im apache. Richtig geklappt hat das hier bei mir
erst ab tomcat 4.0.1 (aktuell ist 4.0.4). Ich fahr hier ne SuSE 7.3,
dem zugehörigen (aktualisierten) Apache, tomcat 4.0.4 und die Anbindung
geschieht mit mod_jk, nicht mit dem webapps Modul.
1. Schritt, Namen bekannt geben, entweder über /etc/hosts, oder den
Name-Server. Das ganze mit nem ping prüfen.
2. Im tomcat nen virtual Host anlegen (hier mal ein Beispiel aus meiner
server.xml vom Entwicklungsrechner):
<Host name="www.knightsoft-net.mt">
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs"
prefix="www.knightsoft-net.mt_access_log."
suffix=".txt"
pattern="common"/>
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="www.knightsoft-net.mt_log." suffix=".txt"
timestamp="true"/>
<Context path=""
docBase="/usr/local/httpd/htdocs/www.knightsoft-net.de"
crossContext="false" debug="0" reloadable="true"/>
</Host>
3. Im docBase-Verzeichnis (hier
/usr/local/httpd/htdocs/www.knightsoft-net.de) werden dann die
nötigen Verzeichnisse angelegt, WEB-INF auf jeden Fall,
WEB-INF/classes, falls die Servlets als *.class Dateien vorliegen,
die kann man dort dann gleich mal ablegen und WEB-INF/lib wenn
spezielle JavaArchive (JAR-Files) benötigt werden und/oder die
Servlets im JAR-File vorliegen (mach ich immer, spart das hantieren
mit vielen kleinen Popeldateien, ohne dass man in die Unsitte ver-
fällt alles in ein Programm zu packen).
Direkt ins WEB-INF-Verzeichnis stecken wir dann noch eine Datei
namens web.xml zur Konfiguration des Ganzen. Wenn nix spezielles
benötigt wird, nur die Servlets aufrufbar sein sollen, reicht ne
Dummy-Datei wie folgt:
------------------------------ schnipp -----------------------------
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
</web-app>
------------------------------ schnapp -----------------------------
4. Nach einem Restart von tomcat sollte der Virtual-Host Tomcatseitig
ansprechbar sein. Über einen Browser lässt sich das mit Eingabe der
URL (in meinem Fall) http://www.knightsoft-net.mt:8080 schnell
prüfen.
5. Wenn es klappt, ist der Apache dran. Wichtig ist, dass tomcat das
mod_jk Modul einbindet, bevor die virtual Hosts definiert werden,
das war zumindestens bei SuSE nicht der Fall, da war das ganz unten
drin, bringt überhaupt nix. Ich hab mein
Include /opt/jakarta/conf/mod_jk.conf deshalb direkt vor die Section
3: Virtual Hosts geklatscht.
6. Im VirtualHost gibt man dann nur noch Bescheid, um was sich das
tomcat letztendlich kümmern soll. Bei mir sieht das dann so aus
(aufs wesentliche reduziert):