akq_dschulze
I'm new here

Tomcat deploy Konfiguration

Hallo Zusammen,

wir haben folgenes Problem:

Über unseren externen Webserver, ein tomcat, lassen wir unsere Website anzeigen. Die Contentdateien liegen im webappsverzeichis in einem separaten Ordner: /webapps/website/"Content"

Wenn ich jetzt die website.war-Datei auf dem tomcat deployen lasse, dann wird der Content im Ordner website gelöscht und man findet nur einen neuen Ordner WEB-INF wo die Suche etc. drin ist.

Wie kann ich dieses Problem umgehen bzw. wie ist eure Webserver-Struktur?

Vielen Dank und Grüße

Daniel

0 Kudos
7 Replies
thmarx
I'm new here

Hallo Daniel,

das ist "leider" Standard, wenn du ein WAR auf dem Tomcat deployst.

Du hast jetzt zwei Möglichkeiten:

1. Du startest nach dem deployen des WAR ein Voll-Generierung

2. Du spielst das WAR manuell ein. Also Tomcat stoppen, alles außer dem content löschen, das website.war entpacken, den Inhalt in website kopieren, den Tomcat wieder starten

Gruß

Thorsten

0 Kudos
witt
I'm new here

Hallo Daniel,

eine weitere Alternative wäre es, wenn du den Content nicht innerhalb des webapp-Ordner deployst, sondern komplett außerhalb, also z.B. auf /var/myDomain/content. Innerhalb des webapps Ordners benötigst du nun einen symlink auf /webapps/website/"Content". Hier könntest du z.B. ein Servlet nehmen welches Dir den Symlink beim Startup der Webapp automatisch erzeugt.

Viele Grüße,

Daniel

0 Kudos

Hallo Thorsten,

vielen Dank für die Antwort.

Im Moment nutzen wir den ersten Weg, und starten nach jedem deployen des WAR-Files eine Voll-Generierung.

Den zweiten Weg hatte ich auch ausprobiert, allerdings hat dann die Suche auf der Website nicht funktioniert. Vielleicht hatte ich da aber auch einen Fehler gemacht :smileyconfused:

Viele Grüße

Daniel 

0 Kudos

Hallo Daniel,

vielen Dank für die Antwort, die Lösung klingt elegant.

Gibts es irgendeine Anleitung wie ich das WAR-File/Servlet so konfigurieren kann, dass ein Symlink automatisch angelegt wird?

Viele Grüße

Daniel

0 Kudos

Hallo Daniel,

einen Prototypen eines derartigen Servlets haben wir schon einmal umgesetzt, vielleicht finde ich es noch irgendwo. Allerdings ist es sicher noch eleganter, wenn man aliases im Context setzt oder Ressourcen über einen VirtualDirContext und das Attribut extraResourcePaths bekanntgibt.

Hier die Beschreibung dazu:

http://tomcat.apache.org/tomcat-7.0-doc/config/context.html
http://tomcat.apache.org/tomcat-7.0-doc/config/resources.html
Das wäre dann eine analoge Konfiguration zum extendedDocumentRoot im WebSphere Application Server, die ich hier beschrieben habe: Auslagerung von statischen und JSP-Dateien im WebSphere Application Server

Das wäre auf jeden Fall die schönere Lösung.

Viele Grüße,

Raphael.

1+1=3 for large values of 1.
0 Kudos

Hallo Daniel,

benötigst du noch weitere Hilfe oder wurde deine Frage mit den gegebenen Antworten gelöst? In diesem Fall wäre es super, wenn du die "richtige Antwort" entsprechend markierst.

Viele Grüße

Michaela

0 Kudos
akq_dschulze
I'm new here

Hallo Zusammen,

wir haben inzwischen mal die verschiedenen Wege ausprobiert. Dabei haben wir allerdings ein Problem. Wenn neben dem WEB-INF Verzeichnis nur ein Symbolischer Link liegt, dann wird zwar die Website angezeigt aber die Suche und das Kontkat-Formular auf der Website funktioniert dann nicht. D.h. die Website kann nicht auf den WEB-INF Ordner zugreifen bzw. Werte übergeben.

Wenn ich allerdings den Content, ohne Link neben den WEB-INF lege, dann funktioniert die Suche etc.

Wie kann ich das Problem lösen bzw. wonach muss ich suchen.

Viele Grüße

Daniel

0 Kudos