einheitliche Property-Datei für Webseite und Programm - Pfadangabe?!

Kryptaesthesie

Erfahrenes Mitglied
Guten Morgen,

folgende Konstellation:
Wir haben ein Webprojekt, läuft in einem Tomcat.
In dieses Projekt ist aber auch ein Programm, das auf dem Server per Cronjob angestoßen wird, integriert.
Bis jetzt haben wir eine Klasse, die alle Einstellungen, wie bspw. Mailserver, etc. speichert. Das ist aber nun nicht der schönste Weg und wir möchten gerne diese Einstellungen in eine Ini auslagern.
Wie geben wir dem Programm und "der Webseite" jetzt mit, wo die Einstellungsdatei liegt?

Ich hatte an folgende Lösung gedacht:
Ist es möglich dem Tomcat (z.B. in der web.xml) den Pfad der Ini mitzugeben und dem Cronjob den Pfad zur Ini per Parameter mitzuteilen?

So ist sichergestellt, dass wir die Ini nur einmal anlegen und nicht an zwei Positionen ablegen müssen.
Gibt es noch andere schöne Lösungen, oder gar eine best-practise-Variante? :)

Vielen Dank schon mal für eure ständige tolle Hilfe! ;-)
Gruß
Gerrit
 
Hallo,

falls der cronjob zum Starten des Programmes die Properties noch nicht braucht und diese erst innerhalb des Programmes benötigt wird, könnte man die Propertiesdatei mit in das jar der Anwendung packen.
Auf die Datei kann dann innerhalb des Programmes mit
Code:
getClass().getResourceAsStream("prop.properties");
zugegriffen werden.
 
Guten Morgen,

an das Ablegen in der Jar hatte ich auch gedacht. Wenn sich dann aber bspw. der Mailserver ändert, müssten einige INIs angepasst werden.
Leider scheidet die Variante via Parameter aus verschiedenen Gründen aus.
Darum sehe ich derzeit noch keine elegantere Variante.

Weiß denn jemand eine gute Beschreibung wie ich den Pfad in die web.xml unterbringe, bzw. vielmehr, wie ich ihn auslese?
Ich bin sicher bei :google: werde ich fündig und werde mich auch gleich mal daran machen, aber evtl. hat einer einen Link mit einer guten Beschreibung parat?!

Danke schon mal :)


Gruß
Gerrit
 
Schau mal hier: http://tomcat-configure.blogspot.com/2009/01/tomcat-web-xml.html
How to add a parameter to your Context ?

<context-param>
<param-name>username</param-name>
<param-value>frank</param-value>
<description>parameter description</description>
</context-param>

String username = getServletContext().getInitParameter("username");

Allerdings geht das Statement getServletContext() nur innerhalb des Requestzyklus im Tomcat, ohne Container müsste die Datei dann wie im ersten Post geladen werden.
 
Zurück