Pfad zu einer Datei in einer webapp unter GlassFish
Wie kann ich geben Sie den Pfad zu einer Datei in eine web-Anwendung? Ich habe einen Ordner 'Vorlagen' unter WEB-INF, ich habe gesagt, dass, unter GlassFish v3 der Pfad sollte wie folgt Aussehen:
./WebContent/WEB-INF/templates
aber auf diese Weise bin ich immer eine Datei nicht gefunden Ausnahme. Was muss ich ändern, damit es funktioniert?
- Sind Sie mit Eclipse?
- Ja, ich bin mit Eclipse/GlassFish bundle. Es stellt sich heraus ./ weist darauf workspace\.metadata\.plugins\com.Sonne.enterprise.jst.server.sunappsrv92\domain1\config, die draußen von meinem Projekt-Verzeichnis. Jetzt habe ich eine wirklich lange Weg von dort, um meine Anwendung zu machen es funktioniert, aber ich weiß die bei der Bereitstellung it ' s gonna bite mich auf dem Hintern wieder...
- möchten Sie vielleicht posten Sie Ihre Lösung als Antwort auf diese Frage zu helfen, die nächste person, die hat ein ähnliches problem. das ist wie stackoverflow besser wird.
- Werde ich sicher tun, sobald ich sicher, dass es wirklich funktioniert nach der Bereitstellung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn ich Sie richtig verstehe, verlassen Sie sich nicht auf das aktuelle Arbeitsverzeichnis zu lokalisieren eine Ressource, die Sie bereitgestellt haben. Wenn Sie Ihre Ressourcen-physisch platziert werden relativ zu einem classpath-Ressource (wie in einem Glas), Sie Fragen können, wo , dass Ressource ist, und navigieren Sie dann von dort.
Vom Wie ein servlet kann Holen Sie sich den absoluten Pfad zu einer Datei außerhalb des servlet? die wiederum von http://www.exampledepot.com/egs/java.lang/ClassOrigin.html:
Beim erstellen einer dynamischen web-app-Projekt in Eclipse, die Inhalte, die in der Wurzel der war-Datei wird gepackt von den WebContent-Ordner.
Klingt es wie Sie wollen, um den Zugriff auf eine Datei aus dem Verzeichnis WEB-INF/templates zur Laufzeit für Ihre web-app.
Ich gehe davon aus, dass Sie den absoluten Pfad für den Zugriff auf eine Datei aus gibt es derzeit. Sie haben bereits herausgefunden, dass dies wohl nicht funktionieren wird für Ihre app, sobald es bereitgestellt ist.
Müssen Sie den Zugriff auf den Inhalt der Datei, die mit ServletContext.getResourceAsStream(String).
Folgenden Ausschnitt findet sich eine Datei namens WEB-INF/templatez/myfile.txt aus einem servlet, das Teil, wenn die web-app enthält die myfile.txt Datei. Andere web-apps, und der Benutzer wird nicht in der Lage, den Zugriff auf die Datei via http GET-Anfragen.
Ok, ich dachte mir, diese. Kann nicht glauben, dass die Lösung war so simpel. Ich zog den Vorlagen-Ordner WebContent Ordner, gleiche Stelle, JSP und HTML-Seiten stehen, und den Pfad geändert, in der DD /Vorlagen. Jetzt bin ich ziemlich sicher, es werde die Arbeit unter einem beliebigen web-container auf einem server.
Wäre servlet-3.0 resource-JAR-Funktion nützlich sein: http://blogs.oracle.com/alexismp/entry/web_inf_lib_jar_meta ?