web-dev-qa-db-ja.com

java.io.FileNotFoundException:クラスパスリソースが存在しないため開くことができません

プロジェクトの構成場所を設定しようとしていますが、次のエラーが表示されます。

Java.io.FileNotFoundException:クラスパスリソース[main/resources/app-context.xml]は存在しないため開くことができません

私のプロジェクトは次のように設定されています:

enter image description here

そして、私は私のコードを次のように設定しています:

ApplicationContext context = new ClassPathXmlApplicationContext(configLocation: "main/resources/app-context.xml");

どうすれば修正できますか?

10
Rob_kael

Src/main/Javaの直下に置くものは、クラスパスのルートにあるデフォルトパッケージにあります。 src/main/resourcesの下に置かれたリソースについても同じです。それらは最終的にクラスパスのルートになります。

したがって、リソースのパスは、main/resources/app-context.xmlではなく、app-context.xmlです。

18
JB Nizet

このソリューションを試すこともできます

ApplicationContext ctx = new ClassPathXmlApplicationContext("classpath*:app-context.xml");

この場合、スプリングはクラスパス自体でクラスを自動的に見つけます

3
Saurabh Verma

これを試して:

ApplicationContext context = new ClassPathXmlApplicationContext("app-context.xml");
1
Mouad EL Fakir

ファイルの場所/パスは、クラスパスの場所に相対的でなければなりません。リソースディレクトリがクラスパスにある場合、ファイルの場所として「app-context.xml」のみが必要です。

0
Gomsy