2

春のプレースホルダー構成で問題に直面しています。解決策を見つけようとしてウェブを検索しましたが、何もうまくいきませんでした。

.properties ファイルをロードするために spring configurer を使用していましたが、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 は、Web アプリで依存関係として使用される core-lib.jar に配置されます。ロギングなどの他の構成はうまく機能します。

何か提案があればよろしくお願いします。

4

2 に答える 2

1

これは単なるアイデアですが、うまくいくかもしれません。

.propertyファイルに正しいアクセス権があることを確認しましたか? つまり、Spring アプリケーションを実行しているユーザーはアクセスできますか?

表示されたエラーを表示していただけると大変助かります。

于 2014-12-19T11:42:50.210 に答える
0

わかりました、私はついにそれを解決しました。それには2つのことがありました。

最初: 私の tomcat サーバーは、デプロイされたファイルを適切に更新していませんでした。

最後に、それが役に立ったかどうかはよくわかりませんが、file: 仕様の後にもう 1 つスラッシュを追加したため、結果は次のようになりました。

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

これで、すべての構成ファイルが適切にロードされます。

于 2014-12-19T12:09:33.823 に答える