SpringがクラスパスからapplicationContext.xmlファイルを読み込むのに問題があります。次のエラーの原因クラスパス上のリソースを指定する方法
appContext = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
と
appContext = new ClassPathXmlApplicationContext("applicationContext.xml");
。
Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [applicationContext.xml]; nested exception is java.io.FileNotFoundException: class path resource
[applicationContext.xml] cannot be opened because it does not exist
at
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:341)
at
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)
次のコードは、applicationContextファイルを含むクラスパス上にあるすべてのjarファイルを正しくリストしています。これらのjarファイルの
ClassLoader cl = ClassLoader.getSystemClassLoader();
URL[] urls = ((URLClassLoader)cl).getURLs();
for(URL url: urls){System.out.println(url.getFile());}
一つは、私の「applicationContext.xmlを」ファイルが含まれていリソースフォルダがあります。私はそれがそこにあることを確認するために7-Zipでjarファイルを開いた。
私のjarファイルをリストしたクラスローダーがそれを見つけることができるかどうかを調べるためのコードをいくつか追加しました。
URL appContextURL=cl.getResource("applicationContext.xml");
if(appContextLocation==null){
logger.info("context not found in classpath");
}else{
logger.info("Application context found at " + appContextLocation);
}
これも見つからない
applicationContext.xmlが見つかったかどうかを確認するにはどうすればよいですか?
ここでapplicationContext.xmlを入れましたか? – kuhajeyan
どのIDEを使用していますか? –
これに 'resources'フォルダがある場合、あなたのパスは'/resources/applicationContext.xml'でなければなりません。これはクラスパスのルートからロードされます。 –