2

Web アプリをデプロイするときに、次のエラー/例外が発生します。

org.springframework.beans.factory.BeanInitializationException: プロパティを読み込めませんでした。ネストされた例外は java.io.FileNotFoundException: ServletContext リソース [/WEB-INF/WebAppProps] を開けませんでした

以下は、webAppsProps.propertiesファイルを指すためにapplicationContext.xmlで使用しているコンテキスト タグです。

   <bean id="propertyConfigurer"
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
    p:location="classpath:/WEB-INF/WebAppProps.properties" />

私も使用しました:

  <bean id="propertyConfigurer"
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
    p:location="/WEB-INF/WebAppProps.properties" />

ファイルは実際にはファイルシステムにあり、以下は私のプロジェクト構造のスナップショットです:

ここに画像の説明を入力

また、クラスパスに「WebAppProps.properties」を配置して、これらの2つのバリエーションを使用してみました

バリエーション 1:

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

バリエーション 2:

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

下記を参照してください: ここに画像の説明を入力

ただし、まだ同じエラー/例外が発生します。

お知らせ下さい

ありがとうございました

4

5 に答える 5

4

私が交差した同じ問題、

修正:以下のように Bean を 解決 します。

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  <property name="location">
    <value>/WEB-INF/database.properties</value>
  </property>
</bean>

WEB-INFその下にフォルダーのプロパティを作成しますWEB-INF/properties/database.properties

クラスのPropertyPlaceholderConfigurerデフォルトの検索プロパティフォルダーが最初に/WEB-INF/あるため、ファイル名をパスとして連結します

于 2014-05-27T11:16:09.460 に答える
2

コードを変更して、プロパティを次のように配置する必要があると思います。

    <bean id="propertyConfigurer"
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location" value="/WEB-INF/jdbc.properties" />
</bean>
于 2012-09-02T16:38:17.700 に答える
1

Spring 4これは、プロパティファイルを構成する方法です

@Configuration
@PropertySources({
        @PropertySource("classpath:application.properties"),
        @PropertySource(value = "${application.properties}", ignoreResourceNotFound = false)
})
public class WebServiceConfig {
---
}

そして、setenv.shでTomcatを起動するときに、パスを次のように定義します

-Dapplication.properties=file:location-of-file/application.properties"

通知ファイル: ここに接頭辞。それは重要です。

ファイル システムの任意の場所にファイルをドロップして、コードを変更することなくパスを変更できるようになりました。

于 2016-04-20T01:41:35.997 に答える
0
<bean 
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

    <property name="location">
        <value>WebAppProps.properties</value>
    </property>
</bean>

ディレクトリのルートにあるクラスパスにファイルを配置するだけですclasses

于 2012-05-16T22:56:38.640 に答える