Spring:PropertyPlaceholderConfigurer找不到属性文件

我使用PropertyPlaceholderConfigurer对Spring有一个奇怪的问题。 我的一个豆子设计如下:

   classpath:jdbc.properties   

问题是spring永远不会找到jdbc.properties( FileNotFoundException )。 该文件位于bundle classpath中的名为“resources”的文件夹中(我在OSGi项目中工作)。

我几乎尝试了所有组合(“jdbc.properties”,“/ jdbc.properties”,“classpath:jdbc.properties”,“classpath:/jdbc.properties”,“/ resources / jdbc.properties”等等… )但它永远不会奏效。

有关信息,如果在某些时候,我做的事情如下:

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

它确实工作没有任何问题,并找到该文件。 实际上我完全无法理解spring的错误是什么。

如果您有任何想法可以帮助我,请提前感谢。 我在spring不是很有经验,所以我可能在某处犯了一个错误。

[编辑]

实际上,这是类加载器的问题:如果我这样做:

 new ClassPathResource("jdbc.properties"); 

它不起作用。 但是:

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

工作得很好。

我相信Spring使用我的bundle所使用的自己的bundle的ClassLoader。 你知道解决这个棘手问题的方法吗?

谢谢,

尝试classpath*:jdbc.properties

IANA OSGI开发人员,但快速的Google搜索会生成Spring-osgi文档的链接 。 查看5.4节并注意spring-osgi包对Resource加载进行了一些更改。 看起来像osgi的默认ApplicationContext实现的ResourceLoader将自动预先挂起osgibundle:如果没有提供其他前缀。

在使用classpath:时搜索的classpath:与使用classpath*:时使用的classpath*:之间的范围似乎有所不同,但到目前为止我还无法找到一个很好的解释。