我正在尝试从eclipse内部运行一个junit测试,并且我得到了“未能加载ApplicationContext”异常。原因是它试图加载使用在另一个spring中定义的变量的spring。前任:
公共-beans.xml使用${domain}和${common}
在config2.xml中将这些定义为:
<bean id="AppConfigHelper" class="AppConfigHelper">
<property name="appName" value="Service"/>
<property name="domain" value="unittest"/>
<property name="realm" value="asdf"/>
<property name="root" value="./build/private/unittestroot"/>
</bean>org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197):由于: org.springframework.beans.factory.BeanDefinitionStoreException:无效的file:spring-configuration/common/common-beans.xml:中定义的名称为“bucketPartitionMapper”的bean定义无法解析占位符‘域’而导致的加载ApplicationContext java.lang.IllegalStateException失败
我该怎么做呢?
发布于 2012-09-20 02:03:02
由于错误状态,Spring无法解析“域”占位符。这意味着,在公共beans.xml中,您正在使用${domain},但是Spring无法找到该占位符的值。您粘贴的代码只设置AppConfigHelper的域属性的域属性,它不设置占位符。
为了设置占位符,创建一个名为application.properties的文件并使其包含以下内容:
domain=YOUR_DOMAIN_HERE
然后,需要在应用程序中设置一个PropertyPlaceholderConfigurer,如下所示:
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>application.properties</value>
</property>
</bean>下面是一些帮助您解决问题的资源:PropertyPlaceHolderConfigurer javadoc和一个例子
https://stackoverflow.com/questions/12503650
复制相似问题