Frühjahr : PropertyPlaceholderConfigurer nicht finden können property-Datei

Ich habe ein seltsames problem mit Frühjahr mit PropertyPlaceholderConfigurer. Eine meiner Bohnen ist so konzipiert wie folgt :

<bean name="propertyPlaceholder" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
        <value>classpath:jdbc.properties</value>
    </property>
</bean>

Das problem ist, dass der Frühling nie finden, jdbc.Eigenschaften (FileNotFoundException). Die Datei wird in einem Ordner namens "resources", die in der bundle-classpath (ich arbeite in einem OSGi-Projekt).

Ich habe versucht fast jeder Kombination ("jdbc.Eigenschaften", "/jdbc.Eigenschaften", "classpath:jdbc.Eigenschaften", "classpath:/jdbc.Eigenschaften", "/resources/jdbc.Eigenschaften", etc...), aber es funktioniert nie.

Informationen, wenn irgendwann, ich glaube so etwas wie :

URL u = someClassLoader.getResource("jdbc.properties");

es funktioniert ohne Probleme und die Datei finden. Eigentlich bin ich völlig unfähig zu verstehen, was ist der Fehler mit dem Frühling.

Wenn du keine Ahnung hast, um mir zu helfen, vielen Dank im Voraus. Ich bin nicht sehr erfahren im Frühjahr, so habe ich vielleicht getan, irgendwo ein Fehler.

[BEARBEITEN]

Tatsächlich, es ist ein problem der classloader :
Wenn ich das mache :

new ClassPathResource("jdbc.properties");

funktioniert es nicht. Aber :

new ClassPathResource("jdbc.properties",someClassIntheBundle.class.getClassLoader());

funktioniert perfekt.

Glaube ich, dass der Frühling verwenden Sie die ClassLoader von seinem eigenen Bündel, das verbraucht mein Bündel. Kennst du eine Lösung für dieses knifflige problem ?

Dank,

Für den moment, ich muss schrecklich statischen Pfad ein, in meine config-Datei für die Prüfung (wie bundleresource://63.jhdjlzeo:2/jdbc.Eigenschaften (es funktioniert)). Ich habe keine andere Lösung (vgl. andere Kommentare unten)

InformationsquelleAutor ThR37 | 2011-08-25

Schreibe einen Kommentar