# Properties-File und relative Pfadangaben



## xquadrat (19. Okt 2008)

Hallo.

ich habe eine ältere Anwendung, deren Datenbankzugriffe über JDBC-erfolgen. Die Daten für die JDBC Verbindung sind in einer Java-Properties-Datei gespeichert.
Soweit hat das ganz gut funktionert.

Jetzt soll diese Anwendung zusätzlich über eine Weboberfläche die mit JSF gestaltet ist bedient werden.
Als J2EE Server verwende ich Tomcat 6, der aus Eclipse gestartet wird.

Ich habe nun dem Bean eine insert()-Methode hizugefügt, in der es sich selbst der "alten" Datenbankschnittstelle übergibt. Das Problem das nun auftritt ist, dass aus diesem Kontext heraus die properties datei mit den Datenbankzugangsdaten nicht mehr gefunden wird.

Bisher habe ich folgendes versucht:
-die properties datei im Verzeichnis WEB-INF bzw. META-INF zu hinterlegen
- im dynamic webproject unter WebContent einen unterordner conf angelegt und versucht mit relativen pfadangaben zu arbeiten. das funktioniert nicht.

da diese anwendung später auf einen linuxserver portiert werden soll, wäre es ungeschickt hier mit absoluten pfadangaben zu arbeiten.

hat jemand eine idee, wie man das problem lösen kann?


----------



## maki (19. Okt 2008)

Ist die Properties Datei im Classpath?


----------



## xquadrat (19. Okt 2008)

sie liegt zumindest im sources ordner... im gleichen verzeichnis/package wie die aufrufende klasse.
aber 
	
	
	
	





```
props.load(new FileInputStream("db.properties")
```
 liefert eine FileNotFoundException.

am liebsten wäre mir die variante dass ich relativ auf das verzeichnis WebContent/conf/db.properties referenzieren könnte. aber wenn ich mir in der aufrufenden klasse mit 
	
	
	
	





```
File = new File(".")
```
 den absoluten pfad anzeigen lasse, ist das C:\eclipse.


----------



## maki (19. Okt 2008)

Würde die Properties über den ClassLoader laden: http://www.javaworld.com/javaworld/javaqa/2003-08/01-qa-0808-property.html


----------



## xquadrat (19. Okt 2008)

Das habe ich probiert. Die properties datei liegt im gleichen package wie die aufrufende klasse.


```
Properties mProperties = new Properties();
mProperties.load(this.getClass().getClassLoader().getResourceAsStream ("db.properties"));
```

hier wird null zurückgeliefert... also die datei nicht gefunden? werden solche dateien nicht standardmäßgig mit deployed?


----------



## xquadrat (19. Okt 2008)

ah, wenn die datei direkt in src liegt wird sie angezogen 
das hat geklappt... vielen dank!


----------

