3

config.propertiesOSGiバンドルに含まれています。しかし、OSGiバンドルはそれを読み取ることができません。

Application context refresh failed (OsgiBundleXmlApplicationContext(bundle=dao, config=osgibundle:/META-INF/spring/*.xml))
org.springframework.beans.factory.BeanInitializationException: Could not load properties; nested exception is java.io.FileNotFoundException

私はSpringを使ってconfig.properties

<bean id="propertyConfigurer"
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location" value="config.properties" />
</bean>

.xmlOSGiはファイルを読み取るだけのようです。誰かが何か考えを持っていますか?

4

1 に答える 1

3

valueプロパティに正しいリソースを指定する必要があります。次のような組み込みの実装がいくつかあります。

  • ClassPathResource:value="classpath:/META-INF/config.properties"
  • FileSystemResource:value="file:C:/foobar/config.properties"

ライブラリの外部にファイルを配置する場合は、システムプロパティ(例-DpropertyFile=C:/loremIpsum/config.properties)を使用して、次のようなパスを指定できます。

value="file:${propertyFile}"

Spring 3.0以降。?デフォルト値でも

value="file:${propertyFile:C:/foobar/config.properties}"

システムプロパティを設定する方法については、OSGiフレームワークを参照してください。ClassPathResourceがうまく機能するかどうか/ OSGi環境で推奨されるかどうかもわかりません。

于 2012-05-04T19:31:47.523 に答える