Servlet Webservice Konfigurationsdateien Best Practice

Decrayer

Mitglied
Hallo,

ich stehe vor dem Problem, dass ich für ein Java Program einen Webservice schreiben soll, bzw. dieses in einen Webservice umwandeln soll (Ziel: eine einzige .war Datei).

Das Java Program nutzt eine ganze Reihe von Konfigurationsdateien die alle beim Start eingelesen werden. Da ich aber bei .war Dateien nicht die "File" Klasse von Java benutzen kann um durch Verzeichnisse im .war zu navigieren, muss ich mir dazu etwas anderes überlegen, denn wenn ich über den Classpath gehe um die Ressourcen zu laden, muss ich die genauen Dateinamen ja schon vorher wissen und kann nicht einfach alle nehmen die eine gewisse Endung haben.

Jetzt wollte ich mal fragen, wie bei so einem Problem die Best-Practice Lösungen aussehen. Am besten mit ein paar weiterführenden Quellen sodass ich mich da weiter einlesen kann.

Ein weiteres Problem: Ich benutze eine Library um auf Excel-Files zuzugreifen. Diese hat aber nur eine Schnittstelle die "File" akzeptiert. Wenn ich über den Classpath gehe, dann lande ich am Ende bei einem "InputStream". Gibt es eine Möglichkeit, daraus ein File-Objekt zu machen?
 
Genau, ich weis nicht wie die heissen, denn es sind Konfigurationsdateien die eben einfach so angelegt werden bzw. teilweise einfach "Drag&Drop Plugins", also .jar Dateien die zur Laufzeit geladen und ausgeführt werden wenn sie gebraucht werden.

Hintergrund ist der, dass es sich ursprünglich um ein standalone Java-Server program gehandelt hat, das Verbindungen zu den unterschiedlichsten Fremdsystemen aufbauen kann. Die Anbindung an die Fremdsysteme wird über seperate .jar Files realisiert, die man, je nachdem welche Anbindungen man benötigt, in einen Ordner legt. Beim Start des Programms werden alle diese Jars dann geladen und aus den Konfigurationsdateien in einem anderen Ordner dann die Instanzen dieser Klassen erzeugt.

Für das Speichern von Konfigurationsdaten für die zur Laufzeit benötigten Instanzen haben sich eben .xml Dateien angeboten, weil man diese auch gut noch von Hand bearbeiten kann und sich dadurch die Programmierung eines hochkomplexen Editors spart.

Bei einem Webservice funktioniert dieses Konzept ja nicht mehr wirklich und ich wollte fragen, wie man denn bei einem Webservice typischerweise solche Konfigurationsdaten speichert, sodass sie erhalten bleiben selbst wenn der Webservice mal zwischendurch ausgeschaltet wird.

Für getRessourceAsStream() muss man den Klassennamen ja schon wissen und kann nicht einfach alle Dateien in einem Ordner durchgehen, oder?
 
Zuletzt bearbeitet:
Hallo,

eine Klasse must Du kennen, aber dann kannst Du mehrere Konfigurationsdateien angeben. z.B.

DEINEKLASSE.class.getRessouceAsStream(KONFIG_DATEI_1)
DEINEKLASSE.class.getRessouceAsStream(KONFIG_DATEI_2)
DEINEKLASSE.class.getRessouceAsStream(KONFIG_DATEI_3)
.
.
.
Und das Ganze machst Du in einer Schleife. Vor der Aktion lässt Du Dir alle Dateien in einem Verzeichnis ausgeben. Beispiel findest Du unter java - Read all files in a folder - Stack Overflow

Wenn Du nicht klar kommst, melde Dich.

Gruß,

Robert
 

Neue Themen


Zurück
Oben