2013-03-10 10 views
9

私が作成したREST Webサービスを作成しました。アプリケーションからいくつかのユーザー名とパスワードを保存および取得するconfig.propertiesファイルを作成しました。 /src/main/resources/config.propertiesに保存しました。プロパティファイルを読み取る

EclipseからJavaコードをロードしようとしたときにうまくいきました。しかし、私はそれを読み込んでいません。私は、プロパティファイルをロードするために使用しているコードは

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

誰もがあなたのプロパティファイルは、WEB-INF /クラスである場合は、それを容易に行うことができますどのようにその問題に

+0

あなたがしていることの –

答えて

24

あなたがTomcatに配備するどのようなwarファイルです。 Tomcatはアプリケーションのソースがあるディレクトリを知りません。 src/main/resources

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

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

(MyClassのは、Webアプリケーションの任意のクラスです)。

+0

ありがとう@JBニジェット。魅力的な作品 –

1

を解決するために私を助けることができるです。この場合は、

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

のような名前を付けてください。明らかにファイルはクラスのサブフォルダにあります。この場合、あなたはgetResourceAsStreamを(呼び出すときにフルパスを指定する必要があります)

+0

私の戦争ファイルで私はWEB-INF/classesのプロパティファイルを見ることができます。どうすればそれにアクセスできますか? –

1

クラスパスからロードするようにしてください: -

final Properties properties = new Properties(); 
properties.load(this.getClass().getResourceAsStream("/config.properties")); 
+0

@RJ propertyPathに含める必要はありますか? –

+0

それは動作しません。 Tomcatは、デプロイされたWebアプリケーションを構築するために使用されたソースディレクトリを認識せず、気にしません。私の答えを見てください。 –

0

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

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

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

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

example.properties

propertyNameのセキュリティへの影響を考慮することを忘れないでください....ユーザ名とパスワードを取得するためのWebサービスを作成= 123

関連する問題