[英]Not able to find Spring “classpath:” location
我有一個Spring Project,正在使用bean配置文件beans.xml
在bean配置文件中,我為PlaceHolder定義了一些屬性,該屬性引用了classPath ...在應用程序運行時,這些屬性從/unknownPath/Dev/Loc1/System.properties
加載/unknownPath/Dev/Loc1/System.properties
哪里
${BUS_ENV}=Dev
${LOCATION1}=Loc1
<bean id="placeholderProperties" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:${BUS_ENV}/${LOCATION1}/system.properties</value>
<value>classpath:${BUS_ENV}/lbsprocessor.properties</value>
</list>
</property>
<!-- Force system properties to override any deployed runtime properties -->
<property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE"/>
<property name="ignoreUnresolvablePlaceholders" value="true" />
</bean>
Dev/Loc1/System.properties
如果使用的是eclipse IDE,請在項目上單擊鼠標右鍵,選擇“屬性”,然后選擇“ Java構建路徑”。 在第一個選項卡Source上,有一個名為Default Output文件夾的輸入,該值是您的類路徑。 檢查所有屬性文件是否在該路徑中。
提到您的point 2
問題可能在這些行中
<value>classpath:${BUS_ENV}/${LOCATION1}/system.properties</value>
<value>classpath:${BUS_ENV}/lbsprocessor.properties</value>
您正在使用classpath
作為文件位置,這意味着這些屬性文件必須位於/Dev/Loc1/System.properties
的.war文件中
如果屬性文件不在項目中,則可能在系統級別,您可以像這樣訪問它們
<value>file:${BUS_ENV}/${LOCATION1}/system.properties</value>
<value>file:${BUS_ENV}/lbsprocessor.properties</value>
例如:
<value>file:/home/testuser/system.properties</value>
我使用的是Mac OS,因此我們將配置存儲為jar文件,存儲在/ Library / Java / Extension下。因此,默認情況下,java直接將類路徑引用到該位置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.