2 Stimmen

Trennung von statischem und dynamischem Inhalt in Java EE-Anwendungen

Wir arbeiten mit IBM-Produkten und verwenden typischerweise IBM-Http-Server (lesen Apache) als Reverse-Proxy für unsere Anwendungsserver. Aus Leistungsgründen stellen wir statische Inhalte (.gif, .jpg, .css, .html usw.) von unseren Http-Servern bereit, um die Belastung von den Anwendungsservern etwas zu erleichtern.

Bisher müssen wir Dateien manuell auf den Http-Server verteilen und konfigurieren (am besten durch das Schreiben benutzerdefinierter Skripte). Das Problem besteht im Aufwand, der erforderlich ist, um alles synchron zu halten, insbesondere wenn Sie die Anwendung aktualisieren müssen.

Unterstützt irgendein Java-EE-Produkt dies "out of the box"? Gibt es eine Möglichkeit, dass der Anwendungsserver dies automatisch erledigt, beispielsweise wie bei einer Clusterkonfiguration, bei der der Masterknoten für die Verteilung der Anwendung an andere Knoten und dafür verantwortlich ist, alles synchron zu halten?

2voto

Pascal Thivent Punkte 548176

Bisher mussten wir Dateien manuell auf den HTTP-Server verteilen und diesen konfigurieren (am besten durch das Schreiben benutzerdefinierter Skripte).

Ich verstehe den Konfigurationsteil nicht ganz. Es ist normalerweise ziemlich einfach, statische Inhalte von JSPs und Servlets zu unterscheiden (und sobald dies geschehen ist, ändert es sich nicht so sehr).

Das Problem ist der Aufwand, der erforderlich ist, um alles synchron zu halten, insbesondere wenn Sie die App aktualisieren müssen.

Automatisieren! Mit Maven (oder Ant, aber dies erfordert etwas mehr Arbeit) ist es einfach, separate Assemblys aus einem Webprojekt zu erstellen, um dies zu handhaben: ein WAR für die Java EE-Knoten, ein Zip mit statischen Inhalten für die HTTP-Server.

Unterstützt irgendein Java-EE-Produkt dies "out of the box"?

Soweit ich weiß, nein. Überraschenderweise ist die Bereitstellung ein schwacher Bereich von Java EE. Aber Sie können mit Tools wie Maven und/oder ControlTier ein anständiges Maß an Automatisierung erreichen.

0voto

David Rabinowitz Punkte 28911

Ich bin nicht vertraut mit den IBM-Produkten, aber eine häufige Praxis ist es, die Anwendungen (meist WAR-Dateien) als Verzeichnisse anstelle von Kriegsdateien zu bereitstellen, damit Sie Zugriff auf die Dateien selbst haben. Dann ordnen Sie das Bereitstellungsverzeichnis einem Alias im Apache zu, damit es statische Inhalte von dort bereitstellen kann. Beachten Sie, dass Sie den Zugriff auf das WEB-INF-Verzeichnis blockieren müssen und alle Anfragen an JSP-Dateien (.jsp, .jsf, .do, .action, etc.) zum Anwendungsserver umleiten müssen.

Das Blockieren von WEB-INF erfolgt mit der folgenden Anweisung:

  Order allow,deny 
  Deny from all 
  AllowOverride None

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X