Laden Sie die Eigenschaftendatei in einem Java-Servlet, das in JBoss als Krieg eingesetzt wurde

8

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?

    
Carlosfocker 06.01.2010, 18:53
quelle

4 Antworten

17

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:

%Vor%

Dann load(InputStream) in ein Properties -Objekt (Überspringen von Ausnahmen Handhabung):

%Vor%     
Pascal Thivent 06.01.2010, 21:36
quelle
5

Greifen Sie einfach auf den servletContext und dann auf

%Vor%

Dies funktioniert immer, unabhängig davon, ob Sie einen Krieg oder einen explodierten Krieg einsetzen.

    
julius 06.01.2010 21:32
quelle
2

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%     
Vinodh Ramasubramanian 06.01.2010 21:12
quelle
1

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%     
rsp 06.01.2010 19:50
quelle

Tags und Links