У меня странная проблема с Spring при использовании PropertyPlaceholderConfigurer
.Один из моих бинов имеет следующий вид:
<bean name="propertyPlaceholder" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<value>classpath:jdbc.properties</value>
</property>
</bean>
Проблема в том, что spring никогда не находит jdbc.properties (FileNotFoundException
).Файл находится в папке с именем «resources», которая находится в пути к классам комплекта (я работаю в проекте OSGi).
Я перепробовал почти все комбинации ("jdbc.properties", "/jdbc.properties"," classpath: jdbc.properties "," classpath: /jdbc.properties "," /resources/jdbc.properties "и т. д.), но это никогда не работает.
Для информации, если в некоторыхТочка, я делаю что-то вроде:
URL u = someClassLoader.getResource("jdbc.properties");
это работает без каких-либо проблем и найти файл.На самом деле я совершенно не могу понять, в чем заключается ошибка с пружиной.
Если у вас есть идея, чтобы помочь мне, спасибо заранее.Весной я не очень опытен, поэтому, возможно, где-то допустил ошибку.
[РЕДАКТИРОВАТЬ]
На самом деле, это проблема загрузчика классов: если я сделаю:
new ClassPathResource("jdbc.properties");
это не работает.Но:
new ClassPathResource("jdbc.properties",someClassIntheBundle.class.getClassLoader());
работает отлично.
Я верю, что Spring использует ClassLoader своего собственного пакета, который используется моим пакетом.Знаете ли вы, как решить эту сложную проблему?
Спасибо,