Ich versuche, eine Webapp zu schreiben, wo die Server-Seite nur json / REST-Dienste anbietet, und die gui wird in HTML5, Backbone, Marionette usw. mit asynchronem XHR geschrieben. Das html, js, css, etc. ist statisch und cachbar (wenn es in der Produktion bereitgestellt wird).
Ich muss dies für JBoss EAP6 bereitstellen (entspricht weitgehend AS7 für dieses Problem). Während der Entwicklung möchte ich in der Lage sein, meine Javascript- und HTML-Vorlagen zu bearbeiten und die Ergebnisse sofort im Browser sichtbar zu machen. In der Produktion muss ich meinen statischen Inhalt (das Frontend) explodieren lassen und nicht in irgendeiner Art von Java-EE-Struktur einsetzen (also kein Krieg oder Ohr (oder Sar)).
Im Grunde genommen muss ich wie üblich Kriege nach jboss führen, und ich brauche jboss auch als HTTP-Server für den statischen Teil der App.
Ich habe mit der Idee gespielt, meinen Inhalt in das Verzeichnis welcome-content
im Stammverzeichnis von EAP6 zu kopieren. Während dies dem Inhalt ohne Probleme dient, kann ich nicht mit dieser Struktur für die Entwicklung arbeiten, weil ich nicht mit dem Zeitaufwand leben kann, meine Änderungen in ein anderes Verzeichnis zu kopieren. Ich habe auch einen Symlink von welcome-content
zu meinem statischen Inhalt in der Entwicklungsumgebung versucht, aber das funktioniert nicht in dieser Version von jboss.
Edit: Ich habe Antworten, die mir sagen, wie ich das Problem lösen soll, aber ich bin nicht wirklich auf der Suche nach einem Workaround - das ist einfach. Ich suche wirklich spezifisch, wie man jboss konfiguriert, um statischen Inhalt zu dienen.
TIA.
Sie könnten einfach die statische html / css / js wie gewohnt bereitstellen und ein Werkzeug verwenden, um Änderungen in Echtzeit in das DOM zu injizieren. Ich mache das mit GruntJS jetzt mit grunt-contrib-watch und es funktioniert ziemlich gut.
Aktualisieren
TL; DR
Ich gehe davon aus, dass das ursprüngliche Problem seit mehr als 5 Jahren, seit es angefordert wurde, längst gelöst ist. Wenn jemand wirklich darauf besteht, JBoss als statischen Datei-Webserver zu verwenden, dann ist die Lösung, die in der Frage erwähnt wird, die Lösung - mit welcome-content
-Verzeichnis. Mit EAP6 müssen Sie ein aktives kostenpflichtiges Abonnement von RedHat haben, um es in der Produktion verwenden zu können, und ihre Wissensdatenbank liefert die gleiche Antwort .
Da es nicht mehr 2013 ist, sollte das Kopieren einiger statischer Dateien kein Problem mehr sein, und die meisten IDEs können das recht gut handhaben (nur das Kopieren der geänderten Dateien usw.).
Für alle anderen, die von Google hierher kommen, ist es IMHO vorteilhafter, auf die richtigen Tools für den Job zu verweisen und Backend- und Frontend-Deployment zu trennen (Btw Nginx war lange vor 2013 verfügbar und Apache war schon seit Ewigkeiten hier :)) .
Obwohl es möglich ist, Ihre statischen Web-Assets über JBoss zu hosten, ist es eine ziemlich ineffiziente Nutzung des Java-Webservers. Da Ihr Frontend vollständig von Ihrem Java Backend getrennt ist, stellen Sie es auf dedizierten Webservern bereit - zum Beispiel Nginx oder Apache, das wesentlich effizienter und für die Bereitstellung von statischen Inhalten geeignet ist. (Oder eine spezielle Wildfly with Undertow if Sie müssen)
Sie geben nicht an, ob Sie nur eine einzelne JBoss-Instanz oder eine komplexere Implementierung haben, aber ein gängiges Szenario für einen Anwendungsfall wie Ihren lautet so:
%Vor%Gehen Sie zur Nginx-Dokumentation , um weitere Informationen zu erhalten.
Vorteile der Verwendung dedizierter Webserver: