簡體   English   中英

加載配置文件形式文件系統時,Spring無法解析占位符

[英]Spring Could not resolve placeholder while loading config file form filesystem

我面對的是Spring占位符配置問題。 我已經在網上搜索以尋找解決方案,但對我來說根本沒有用。

我們曾經使用spring configurer來加載.properties文件,並且由於configfiles位於META-INF目錄中,因此一切運行正常。

現在,我們需要將配置文件放在/ etc / sep / properties目錄或其他文件系統目錄中。

我嘗試使用

<context:property-placeholder location="file:/etc/sep/properties/jdbc.properties" />
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName" value="${jdbc.driverClassName}" />
        <property name="url" value="${jdbc.databaseurl}" />
        <property name="username" value="${jdbc.username}" />
        <property name="password" value="${jdbc.password}" />
        <property name="initialSize" value="${jdbc.initialPoolSize}" />
    </bean>

/etc/sep/properties/jdbc.properties的內容如下:

cat /etc/sep/properties/jdbc.properties 
jdbc.driverClassName= org.postgresql.Driver
jdbc.dialect=org.hibernate.dialect.PostgreSQLDialect
jdbc.databaseurl=jdbc:postgresql://localhost:5432/sep?characterEncoding=utf8&autoReconnect=true
jdbc.username=****
jdbc.password=****

我也嘗試過使用另一種方法,但對我都沒有用。

<context:property-placeholder properties-ref="prop" />

<util:properties id="prop" location="reso"/>

<bean id="reso" class="org.springframework.core.io.FileSystemResource">
    <constructor-arg index="0" value="/etc/sep/properties/jdbc.properties" />
</bean>

我不知道這是否重要,但是我們正在使用Maven構建,因此application-context.xml放在core-lib.jar中,在我們的Web應用程序中將它用作依賴項。 其他配置(例如日志記錄)效果很好。

如有任何建議,我將不勝感激。

這只是一個主意,但可能有效,

您是否檢查過.property文件具有正確的訪問權限? 我的意思是,運行Spring應用程序的用戶可以訪問它嗎?

如果您顯示所顯示的錯誤,這將很有幫助。

好的,我終於解決了。 有兩件事。

一開始:我的tomcat服務器未正確更新已部署的文件。

最后我不確定它是否有幫助,但是我們在file:規范后又添加了一個斜杠,因此結果是:

<context:property-placeholder location="file:///etc/sep/properties/*.properties" />

現在,它正在正確加載所有配置文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM