2012-09-19 104 views
0

我試圖在Eclipse中運行JUnit測試,我得到「無法加載的ApplicationContext」異常。原因是它試圖加載一個使用另一個spring-config中定義的變量的spring-config。用於離:無法加載的ApplicationContext

共beans.xml中使用$ {域}和$ {境界}
並且這些在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> 

java.lang.IllegalStateException:無法加載ApplicationContext org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) 原因:org.springframework.beans.factory.BeanDefinitionStoreException:在URL中定義名爲'bucketPartitionMapper'的無效Bean定義[文件:彈簧構型/普通/通用-beans.xml文件]:無法解析PLACEHOLD呃「域」

我如何得到這個工作?

回答

1

由於錯誤狀態,春天是無法解決的「域」佔位符。這意味着,在common-beans.xml中,您正在使用$ {domain},但Spring無法找到該佔位符的值。你貼的代碼只設置域屬性爲AppConfigHelper的域屬性,它設置的佔位符。

爲了設置佔位符,創建一個名爲application.properties,並將它包含以下內容:

域= YOUR_DOMAIN_HERE

然後,你需要設置提供一個PropertyPlaceholderConfigurer在應用程序,就像這樣:

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

這裏有一些資源,幫助你: PropertyPlaceHolderConfigurer javadocan example

相關問題