2017-07-06 5 views
1

Ich habe einige Dateien in einem Lib-Paket, das ich gerade arbeite. Es muss von mehreren Projekten verwendet werden, so dass ich die Dateien nicht direkt auf meinem Webserver speichern kann.Zugriff auf externe Projekt statische Web-Ressourcen von Struts2.5 Webserver

Ich möchte, dass mein Struts2.5-Webserver einige statische Dateien aus meinem Lib-Paket bereitstellen kann. Ich habe versucht, mit einer web-fragment.xml Lösung, aber von what I gather from oracle, dies funktioniert nur, wenn ich mein Bibliothekspaket kompilieren und es in meinem Verzeichnis META-INF irgendwo. Das ist gut und alles, aber wirklich unbequem für jede Art von Entwicklung oder Tests, da ich einen neuen Build machen und es dort jedes Mal kopieren muss, wenn ich Änderungen an der html/js mache. Das klingt für mich wie die falsche Lösung.

Wenn es eine Möglichkeit gibt, dies mit der XML-Konfiguration zu tun, wurde aus dem, was ich gelesen habe, nicht klar gemacht. Wenn ich in die richtige Richtung zeigen könnte, wäre das hilfreich.

Andernfalls, wenn es eine Möglichkeit gibt, dies in Eclipse irgendwie zu tun, wäre das auch akzeptabel. Zur Erinnerung: Dieses Projekt wird vom anderen Projekt in Eclipse als erforderliches Projekt in meinem Java-Build-Pfad referenziert.

Antwort

1

Setzen Sie statische Dateien unter Web Content Root (/). Wenn Sie möchten, dass Struts Ihren statischen Inhalt liefert, dann setzen Sie es unter /static. Struts können auch statische Inhalte aus dem Klassenpfad bereitstellen, es scheint jedoch keine Option für Sie zu sein.

Lesen Sie meine Antwort für Load image in jsp from different URL but same domain:

Sie können für Static Content mehr über statische Inhalte Loader und Konfigurationseinstellungen in der Dokumentation lesen.


Sie können die gleichen statischen Dateien von anderen Web-Anwendungen wiederverwenden, wenn Sie statische Dateien in einer anderen .war Datei verpacken und bereitstellen und einen Kontextpfad angeben, diese Dateien aus einer Anwendung zuzugreifen. Es könnte von derselben Domäne oder von derselben Domäne geliefert werden.

Sie können eine Webanwendung mit statischen Dateien als explodiertes Webarchiv bereitstellen, sodass Sie sie nicht bei jeder Bereitstellung der Anwendung packen müssen. Wenn es sich um eine andere Anwendung handelt, müssen Sie keine anderen Anwendungen erneut bereitstellen. es sei denn, sie sind vom Zugriffspfad auf Dateien betroffen. Ein anderer Ansatz besteht darin, dass Sie das Projekt mit statischem Inhalt für andere Projekte in Eclipse freigeben, da Eclipse die Projektdateien während des Aufbaus in das endgültige .war kopiert und jede Webanwendung eine eigene Kopie der freigegebenen Dateien besitzt. Wenn Sie einige freigegebene Dateien ändern möchten, müssen Sie nur das Projekt neu erstellen/implementieren, an dem Sie arbeiten. Andere Projekte, die dieses Projekt als Abhängigkeit haben, können bei Bedarf neu erstellt/neu bereitgestellt werden. Dies scheint die zuverlässigste Lösung zu sein, da die Änderung einer Web-App keine Auswirkungen auf andere laufende Web-Apps hat.

+0

Vielen Dank dafür klingt der zweite Ansatz wie die Route, die ich nehmen möchte. Ich werde sehen, ob ich aufgrund dieser Empfehlungen etwas zur Arbeit bringen kann. –

Verwandte Themen