在Spring中,尽管已经定义了“PropertyPlaceholderConfigurer”

时间:2016-05-26 20:04:16

标签: spring properties applicationcontext property-placeholder

我正在使用Spring 3.2.11.RELEASE和Maven 3.3。我在我的应用程序上下文文件中定义了这个...

<bean id="localPropertyConfigurer"
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
     <property name="locations">
        <list>
            <value>classpath:quickbase.properties</value>
        </list>
        </property>
</bean> 
…
<bean id=“myClient" class="org.mainco.subco.mysystem.MyClient">
    <constructor-arg index="0" type="String" value="${quickbase.username}" />
    <constructor-arg index="1" type="String" value="${quickbase.password}" />
    <constructor-arg index="2" type="String" value="${quickbase.url}" />
</bean>

但是当我运行测试时,我得到以下错误

Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'myClient' defined in class path resource [META-INF/spring/applicationContext-orders.xml]: Could not resolve placeholder 'quickbase.username' in string value "${quickbase.username}"; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'quickbase.username' in string value "${quickbase.username}"

这令我感到困惑,因为在我的target / classes目录中,我可以看到一个文件“quickbase.properties”,它定义了“quickbase.username”。我无法弄清楚我还需要检查什么。

1 个答案:

答案 0 :(得分:0)

在您的应用程序中有多个org.springframework.beans.factory.config.PropertyPlaceholderConfigurer可能是原因。

看看这个:Could not resolve Spring property placeholder

可能是您正在寻找的答案..