Ich habe ein Servlet als Krieg in JBoss 4.0.2 bereitgestellt. Ich habe eine Eigenschaftendatei für die bereitgestellte Anwendung. Wo sollte ich diese Datei ablegen? Unter dem Verzeichnis conf im Ordner jboss server \ default \ conf? Wie lade ich diese Eigenschaftendatei auf eine tragbare Weise?
Um diese Eigenschaftendatei auf eine portierbare Art zu laden, wäre es am besten, sie in den Klassenpfad der Webanwendung zu legen (entweder in einer JAR unter WEB-INF/lib/
oder unter WEB-INF/classes/
oder auf dem Klassenpfad des Anwendungsservers, wenn Sie diese Datei bearbeiten möchten, ohne Ihre Webanwendung neu zu verpacken) und Class#getResourceAsStream(String)
.
Der folgende Code ruft eine InputStream
für eine Eigenschaftendatei ab, die sich im selben Paket befindet wie das Servlet, in dem der Code ausgeführt wird:
Dann load(InputStream)
in ein Properties
-Objekt (Überspringen von Ausnahmen Handhabung):
Wenn die Eigenschaftendatei zusammen mit der Anwendung bereitgestellt werden kann, fügen Sie sie in Ihre Quellstruktur ein. Dies führt dazu, dass sich die Eigenschaftendatei im Ordner WEB-INF / classes befindet.
Dies kann dann mit
gelesen werden %Vor% Der beste Ort, um es zu platzieren, ist unter dem eigenen doc-root der Web-Apps, wie "./WEB-INF/myapp.properties", dh relativ zu dem, wo der Servlet-Container Ihre .war
oder .ear
entpackt hat. Datei. Sie können die Eigenschaftendatei direkt in .war
bereitstellen.
Die ServletContext
hat eine Methode getRealPath(String path)
, die den tatsächlichen Pfad im Dateisystem zurückgibt. Mit dem echten Pfad können Sie ihn in eine Properties
Sammlung laden.
Aktualisieren Der Code in Ihrem Kommentar versucht, einen echten Pfad für "/" zu finden. Sie sollten nach dem relativen Pfad zu Ihrer Eigenschaftendatei fragen, wie in:
%Vor%Tags und Links java jboss properties