12

アプリケーション全体でいくつかのユーザー名とパスワードを保存および取得するためのconfig.propertiesファイルを作成したRESTWebサービスを作成しました。/src/main/resources/config.propertiesに保存しました。

EclipseからJavaコードからロードしようとすると、正常に動作しています。しかし、Tomcatにデプロイしたとき、ロードされていません。プロパティファイルをロードするために使用しているコードは

properties.load(new FileInputStream("src/main/resources/config.properties"));

誰かがその問題を解決する方法を教えてもらえますか

4

4 に答える 4

30

Tomcatにデプロイするのはwarファイルです。Tomcatは、アプリケーションのソースが存在するディレクトリを認識または認識しません。

のファイルはMavenによってディレクトリにsrc/main/resourcesコピーされ、このディレクトリは、WebアプリケーションのクラスパスにあるデプロイされたWebアプリケーションのディレクトリにコピーされます。したがって、クラスローダーを使用してファイルをロードする必要があります。target/classesWEB-INF/classes

properties.load(MyClass.class.getResourceAsStream("/config.properties"));

(MyClassはWebアプリの任意のクラスです)。

于 2013-03-10T09:47:18.743 に答える
2

プロパティファイルがWEB-INF/classesにある場合は、簡単に実行できます。この場合、次のように記述します。

Properties props = new Properties();
props.load(getClass().getResourceAsStream("/name.properties"));

明らかに、ファイルはクラスのサブフォルダにある可能性があります。この場合、getResourceAsStream()を呼び出すときにフルパスを指定する必要があります

于 2013-03-10T09:43:43.030 に答える
1

クラスパスからロードしてみてください:-

final Properties properties = new Properties();
properties.load(this.getClass().getResourceAsStream("/config.properties"));
于 2013-03-10T09:44:28.140 に答える
1

実行時に/WEB-INF/props/example.propertiesにあるexample.propertiesファイルを読み取りたいとします。

    Properties properties = new java.util.Properties();  
        InputStream inputStream =     
            getServletContext().getResourceAsStream("/WEB-INF/props/example.properties");  
properties.load(inputStream);  

これで、example.propertiesファイルから値を取得する準備が整いました。

String value = properties.getProperty("propertyName");

サンプルプロパティファイル:

example.properties

propertyName = 123

于 2013-03-10T09:56:15.827 に答える