Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo,
ich hab nach nervenaufreibenden Stunden, vermute ich zumindest, es geschafft einen Tomcat-Server mittels mod_jk über einen Apache zum laufen bekommen.
Jetzt frag ich mich aber wie ich auf dem Server etwas deploye. Ich kann ja meine Eclipse-Projekte entweder als war exportieren -> Wo muss die dann hin?
Oder ich kann das Verzeichnis wie es ist nehmen und irgendwo hinkopieren -> Wo muss das hin?
Und wie muss ich dann den Tomcat-Server / den Apache konfigurieren, dass die mir das Projekt direkt in dem Virtuellen Apache-Verzeichnis anzeigen?
Jetzt frag ich mich aber wie ich auf dem Server etwas deploye. Ich kann ja meine Eclipse-Projekte entweder als war exportieren -> Wo muss die dann hin?
Und wie konfigurier ich dann Apache, dass er die Anfragen an die war korrekt weiterleitet und die war nicht aus dem Web downloadbar ist? Weil das webapp Verzeichnis ist ja im Document-Root des VirtualHosts, oder?
ob der Tomcat direkt über Port 8080 (oder welchen Port auch immer man konfiguriert) angesprochen wird, oder über mod_jk und den Apache, spielt für das Deployen keine Rolle.
Die WAR-Datei kommt weiterhin in das webapp-Verzeichnis des Tomcat. mod_jk sorgt nur dafür, dass der Apache Webserver alle Anfragen an eine oder mehrere bestimmte Adressen an den Tomcat weiterleitet. Dafür wird normalerweise Port 8009 verwendet.
Im Apache musst du zwei Sachen konfigurieren:
Einen oder mehrere Worker
Eine mehere JkMount-Direktiven in der Konfiguration des jeweiligen VirtualHosts.
Wo diese Einstellungen liegen ist leider recht unterschiedlich, je nachdem welches Betriebssystem bzw. welche Linux-Distribution du verwendest. Bei Debian liegen die Einstellungen für die Worker z.B. direkt in /etc/apache2, in der Datei worker.properties. Diese Datei sieht dort wie folgt aus (wird automatisch angelegt, wenn du mod_jk über das Paketmanagement installierst):
Code:
# Define 1 real worker using ajp13
worker.list=worker1
# Set properties for worker1 (ajp13)
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
Das heißt, das alle Adressen, die per JkMount-Direktive an diesen Worker gebunden werden, an einen Tomcat auf dem gleichen Rechner weitergeleitet werden, und dieser auf Port 8009 auf Anfragen von mod_jk lauschen sollte. ajp13 ist das Protokoll, das für die Kommunikation zwischen Apache und Tomcat verwendet wird.
In der Konfiguration des VirtualHosts musst du über JkMount-Direktiven festlegen, welche Adressen an den Tomcat weitergeleitet werden sollen. Das könnte zum Beispiel wie folgt aussehen:
Der Tomcat verhält sich genauso, als ob die Adressen direkt über den eingebauten HTTP-Server aufgerufen worden wären, z.B. http://www.example.net:8080/examples.
Hast du mehr Informationen dazu?
Meines Wissens nach ist AJP ein schlankeres, weil binäres Protokoll (gegenüber HTTP) und wird in der Regel als Verbindung von Apache und Tomcat empfohlen.
Hm nach der Suche muss ich mich scheinbar ein wenig korrigieren. Hatte zuletzt eine Anwendung auf Jetty-Basis geschrieben. Diese sagen ganz klar, dass mod_proxy der bessere Weg ist und immer vor mod_jk genutzt werden sollte. Dies scheint aber eher an dem internen Jetty-Aufbau zu liegen.
Tomcat sagt in seiner Doku, dass man mod_jk wählen sollte.
Im Netz gehen die Meinungen scheinbar nach Benchmarks und Tests auseinander. Die einen empfehlen den reinen mod_proxy, Andere mod_jk und einige wenige (den derzeit noch recht neuen, aber nativen) mod_proxy_ajp.
Scheinbar nehmen sich die Module nicht viel und sind eher für bestimmte Einsatzgebiete zu empfehlen.
Ich nehme daher meine etwas vorschnelle (und aus der Erinnerung gegebene ^^) Aussage zurück. Danke FArt, dass du mich noch mal hast nach der Aussage suchen lassen. Dadurch, dass es Jetty und nicht Tomcat war dauerte das nämlich ein paar Minuten
Danke euch vieren, ich glaub jetzt hat sich mein Horizont ein bisschen gehoben und ich versteh wie das ganze funktioniert, werd das nachher mal testen, sollte es nicht klappen werdet ihr wieder von mir hören
Im examples Ordner sind die normales Standard-Examples von tomcat drin.
Ruf ich jetzt tomcat.foxylion.de auf bleibt die Seite weiß.
Rufe ich hingegen foxylion.de:8080 auf, kommt eine Seite mit der Möglichkeit jsp/servlet zu wählen.
Rufe ich tomcat.foxylion.de/jsp/ auf kommt die gewünschte Seite (die äquivalente zum Direktaufruf).
org.apache.jasper.JasperException: The absolute uri: http://java.sun.com/jsp/jstl/functions cannot be resolved in either web.xml or the jar files deployed with this application
usw...
Beim Direktaufruf hingegen nicht.
Wo liegt der Hund begraben?
Ich bin dankbar für jede Hilfe.