mona_ketterer
I'm new here

Staging/QA mit tomcat - wohin wird generiert?

Hallo,

ich habe nach den Anweisungen in der Administratoren-Dokumentation einen tomcat als Container für die Vorschau, WebEdit und Staging angebunden. Für Vorschau und WebEdit funktioniert das wunderbar, beide werden problemlos über den tomcat ausgeliefert.

Bei Staging klappt es nicht, und die Fehlersuche gestaltet sich etwas schwierig, da mir nciht so ganz klar ist wie es denn prinzipiell funktionieren müsste.

Die Staging-Applikation wurde entsprechend in den tomcat deployed, dort liegen jetzt im Verzeichnis webapps u.a.

/fs5staging/

/fs5staging/img/

/fs5staging/WEB-INF/

/fs5staging/index.jsp

/fs5staging/style.css

/fs5staging_3563/

/fs5staging_3563/WEB-INF/

Beim Generieren meines Projekts (3563) kommt die Meldung, dass das Projekt unter der Adresse "[...]/fs5staging_3563/3570/ generiert wird. Wenn ich den Link klicke, kommt nur 404 / "Resource not available" - ich würde jetzt denken kein Wunder, dort ist ja außer des WEB-INF-Ordners nichts.

Beim Öffnen der generischen Staging-Applikation (/fs5staging/) im tomcat kommt die Liste der generierten Objekte, auch hier wiederum wird der Link auf /fs5staging_3563/ aufgeführt, auch dieser führt zu einem 404er.

Ich wäre jetzt davon ausgegangen, dass beim Generieren des Projekts in den tomcat hinein deployed wird - also alle generierten Seiten nicht mehr nach /opt/firstspirit5/web/fs5staging_3565/... geschrieben werden, sondern im tomcat-Verzeichnis nach webapps/fs5staging_3563/. Dort ist außer dem WEB-INF-Verzeichnis aber nichts, generiert wird weiterhin nach /opt/firstspirit5/web/fs5staging_3565/.

Oder greift die fs5staging-Applikation dynamisch auf die in FS generierten Dateien zu, so dass an der Stelle ganr nichts in den tomcat deployed werden muss beim Generieren? Die Vorschau und WebEdit Applikationen holen sich den Inhalt ja auch aus FS direkt - das sind ja aber nicht die generierten daten, von daher kann ich es mir eigentlich nciht vorstellen, dass es bei Staging genauso ist - aber wie gesagt, hier bin ich etwas ratlos.

Soll/muss denn bei Verwendung eines tomcat für Staging die Generierung in den tomcat-webapps Ordner erfolgen ( wenn ja, anhand welcher Einstellung macht FS fest, wohin generiert werden muss?), oder ist das schon ok, dass weiterhin nach /opt/firstspirit5/web/fs5staging... generiert wird, und es funktioniert in meinem Fall einfach nur ein anderer Teil nicht, der dafür sorgt, dass die generierten Seiten dann auch wirklich über den tomcat abgerufen werden können?

Bin dankbar für jeden Hinweis, wie der Soll-Zustand hier ist (und ggf. wo eine Einstellung dafür sorgt, dass es dann auch so funktioniert Smiley Wink)

Danke & viele Grüße

Mona

1 Reply
mona_ketterer
I'm new here

Ich habe es inzwischen hinbekommen - nachdem es jetzt funktioniert verstehe ich auch die Admindoku, vorher waren mir die Zusammenhänge aus der Admindoku einfach nicht klar geworden (es steht im Prinzip alles drin, an verschiedenen Stellen, ich habe die einzelnen Informationen aber nicht sinnvoll kombiniert bekommen, daher mein Mißverständnis)

Hier zumindest mal meine Erfahrungen nachdem ich verschiedene Kombinationen ausprobiert hatte. Der Hauptpunkt, der zu meinen Problemen geführt hatte war, dass FS nach der Generierung eine URL angezeigt hatte, die ich im Browser öffnen kann, von der ich aber nicht wusste wie sie sich zusammensetzt, wie ich sie beeinflussen kann und wie die Daten dahin kommen, jetzt habe ich folgendes Verständnis:

[Webserver-URL]/[Staging-Applikation]/[Generierungsverzeichnis]/[Startpfad]

  • [Webserver-URL] => wenn eine Webserver-URL in der Webserver-Konfiguration angegeben ist, und dieser Webserver für Staging aktiviert ist, dann die dort angegebene URL, sonst die in fs-server.conf angegebene URL.
  • [Staging-Applikation] => wenn in den Projekteinstellungen für das Projekt für Staging der Webserver aktiviert ist, dann fs5staging_[ProjektID], wenn kein Webserver im Projekt für Staging aktiviert ist, dann fs5staging/[ProjektID]
  • [Generierungsverzeichnis] => Das im Generierungsauftrag angegebene Verzeichnis, wenn dort nichts angegeben ist, eine ID (Auftrags-ID?)
  • [Startpfad] => je nach URL-Generierung, z. B. /de/index.html, /en/index.jsp, ...

Im Detail zu den Einstellungen beim Anlegen von Webservern in der Serverkonfiguration:

Unterscheidung tomcat/external (das geringste Problem, das hat die ganze Zeit richtig bei mir funktioniert):

  • als Webserver Typ "tomcat" angelegt:
    • FS-war-Dateien (fs5staging, fs5preview, ...) können automatisch über "Installieren" in den tomcat deployed werden, wenn wie in der Doku beschrieben ein tomcat-User mit entsprechenden Rechten in der tomcat-users.xml angegeben wird und in FS in der Webserverkonfiguration angegeben wird
  • als Webserver Typ "External" angelegt (kann natürlich auch ein tomcat sein)
    • man muss sich komplett selbst um das Deployment der war-Files kümmern (Download -> selbst manuell deployen)

Unterscheidung Angabe Webverzeichnis oder nicht:In der Serverkonfiguration unter Webserver die Webserver anlegen:

  • Webverzeichnis leer lassen.
    • FS generiert standardmäßig nach [FS5-Installationsverzeichnis]/web/fs5staging_[ProjektID]
    • FS zeigt zwar nach der Generierung an, dass der generierte Stand unter [meinHost]/fs5staging_[Projektid]/... im Browser aufgerufen werden kann, aber damit das auch wirklich so ist muss ich dafür sorgen, dass der generierte Stand irgendwie im Webserver (tomcat, ...) abgerufen werden kann, z. B. nach Generierung  und/oder durch Mapping und Konfiguration im Webserver so dass also irgendwie dafür gesorgt wird, dass der Webserver die ursprünglich ins FS-eigene Verzeichnis generierten Dateien ausliefern kann.
    • Beispiel zur Verdeutlichung - mal ganz ohne Rücksicht auf Sicherheits- und Betriebsthemen): rsync nach Generierung ins document_root des Webservers, rsync ins webapps-Verzeichnis des tomcat, ...
  • Verzeichnis angegeben:
    • FS5 generiert die freigegebenen Inhalte in dieses Verzeichnis, nicht mehr nach [FS5-Installationsverzeichnis]/web/fs5staging_[ProjektID]. Klappt natürlich nur, wenn der FS-User auf das angegebene Verzeichnis Schreibrechte hat
    • Beispiel zur Verdeutlichung - mal ganz ohne Rücksicht auf Sicherheits- und Betriebsthemen): den Pfad eintragen, den der Webserver als docroot erwendet, z. B. im tomcat das webapps Verzeichnis - setzt eben voraus dass fs5 Zugriff aufs Dateisystem und Schreibrechte auf die entsprechenden Verzeichnisse hat... Ich gehe mal davon aus dass eher selten Fällen der fs-User Schreibrechte auf das webapps-Verzeichnis haben wird/sollte, daher wohl eher in ein Verzeichnis generieren, aus dem dann anderweitig der Webserver gespeist wird.

Angabe Webserver URL:

  • angegeben: Verlinkungen auf die jeweilige Applikation (in dem Fall also auf fs5_staging nach der Generierung) verwenden diese URL
  • nicht angegeben: Verlinkungen auf die jeweilige URL verwenden den in fs-server.conf angegebenen host

Daraus habe ich mir nun eine funktionierende Kombination konfigurieren können, von daher hat sich das Thema nun für mich dankenswerterweise erledigt Smiley Happy