2016-04-08 16 views
0

Ich schreibe einen Dienst, um eine Reihe von Einstellungen in eine Datei zu exportieren. Natürlich möchte ich die bereits vorhandenen Etiketten wiederverwenden. Wir haben es mit einem Spring + Wicket-Setup zu tun. Die Labels sind in einer Eigenschaftendatei definiert.Lesen Wicket Property von Spring servicelayer

Wie kann ich auf die Eigenschaften zugreifen?

Ich versuchte mit StringResourceModels, aber MissingResourceException wurde die ganze Zeit geworfen. Ich habe versucht, die Eigenschaften von Hand wie

InputStream iStream; 
iStream = MySettingsPage.class.getClassLoader().getResourceAsStream("MySettingsPage.properties"); 
if (iStream != null) { 
    prop.load(iStream); 
} 

Laden Aber die InputStream ist null, so werden keine Eigenschaften geladen.

Ich habe nichts über den Zugriff auf Wicket-Eigenschaften von einem Spring-Service gefunden.

Obwohl ich weiß, dass man Spring Services nicht mit Wicket-Klassen verschränken sollte, bin ich bereit, die Konsequenzen zu akzeptieren, wenn es keinen anderen Weg gibt. Außerdem möchte ich vermeiden, die Eigenschaften von Hand zu laden, weil sie bereits zwischengespeichert sind.

+0

Warum verwenden Sie nicht den Wicket-Weg, um die Eigenschaften zu erhalten? schreibst du die Eigenschaftendateien zur Laufzeit? Wie? – thg

+0

Ich würde denken, die Verwendung des StringResourceModel wäre der Wicket-Weg, aber da ich keine Instanz der entsprechenden Komponente habe, kann ich StringResourceModel nicht verwenden, wie ich es in der Komponente selbst tun würde. – samjaf

Antwort

1
iStream = MySettingsPage.class.getClassLoader().getResourceAsStream("MySettingsPage.properties"); 

wird versuchen, die Datei aus dem Stammverzeichnis des Klassenpfads zu laden. Ich habe das Gefühl, dass diese Datei neben MySettingsPage.class, d. H. Es ist in einem Paket wie com.example.myproduct. Verwenden Sie in diesem Fall:

iStream = MySettingsPage.class.getResourceAsStream("MySettingsPage.properties"); 
Verwandte Themen