我正在尝试将工作的Spring WAR移动到OSGI环境(在glassfish 3.1和蓝图,spring 3.0.5中)。 应用程序加载性能从磁盘文件,像这样:PropertyPlaceholderConfigurer在磁盘上找不到属性文件
<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)
我使用属性jms.url
在my.properties
定义在接下来的bean声明
<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}"
为什么失败?有没有另一种方法来从磁盘上的文件加载属性?
谢谢
可能重复[问题](http://stackoverflow.com/questions/4779572/could-not-resolve-placeholder-problem)。您在调试器中看到的可能会由另一个应用程序中的另一个bean加载.Context.xml – Ravi 2012-02-06 05:17:09
谢谢。我试图设置一个位置路径到不存在的文件,并没有得到一个异常。我试图设置一个硬编码的路径到属性文件,并没有改变。请记住它在非osgi战争中工作 – lili 2012-02-06 09:05:04