0

我正在尝试将工作的 spring WAR 移动到 OSGI 环境(在 glassfish 3.1 和蓝图,spring 3.0.5 中)。应用程序从磁盘加载属性文件,如下所示:

<bean id="myProperties" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location" value="${my_conf}/my.properties"/>
    <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE"/>
</bean>

我在调试器中看到${my_conf}/my.properties已转换为现有路径 (c:\conf\my.properties)

我使用在下一个 bean 声明中jms.url定义的属性my.properties

<amq:broker useJmx="false" persistent="false" brokerName="embeddedbroker">
    <amq:transportConnectors>
        <amq:transportConnector uri="tcp://${jms.url}"/>
        <amq:transportConnector uri="vm://embeddedbroker" />
    </amq:transportConnectors>
</amq:broker>

在部署中我得到一个例外"Could not resolve placeholder ${jms.url}"

为什么会失败?还有另一种方法可以从磁盘上的文件加载属性吗?

谢谢你

4

2 回答 2

0

由于它是一个 OSGI 环境,因此您需要将 spring-osgi-core jar 添加到您的应用程序中。查看此链接以配置 OSGI 框架的属性占位符。

于 2012-02-06T16:36:08.080 回答
0

这不是解决方案,而是对我的问题的解释。该问题与spring 3 和 osgi 中的此错误有关。

我必须打开 spring 日志以调试级别才能理解它。

于 2012-02-26T11:06:14.483 回答