1

私の Web アプリでは、春のセキュリティを使用しようとしています。次のプロジェクト構造があります。

プロジェクトの構造

私の web.xml では、次のように configLocations を設定します。

プロジェクトの構造

そして、私の HibernateUtil では、次のように ClassPathXmlApplicationContext を作成します。

プロジェクトの構造

しかし、アプリを実行すると、次のエラーが発生します。

GRAVE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML    document from class path resource [resources/applicationContext.xml]; nested exception is    java.io.FileNotFoundException: class path resource [resources/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)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180)
at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:125)
at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:94)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:131)
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:527)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:441)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:383)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:283)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4723)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5226)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5221)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)
Caused by: java.io.FileNotFoundException: class path resource [resources/applicationContext.xml] cannot be opened because it does not exist
at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:157)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:328)
... 20 more

何が間違っている可能性がありますか?

4

2 に答える 2

2

maven war プラグインを参照してください。

ターゲットフォルダーに実際にファイルが含まれていることを確認してください。

https://maven.apache.org/plugins/maven-war-plugin/examples/adding-filtering-webresources.html

于 2012-11-06T00:57:28.350 に答える
0

このエラーは、クラスパスに resources/applicationContext.xml が見つからないことを明確に示しています。

コード構成を見ると、Spring applicaitonContext.xml ファイルが WEB-INF の直下にあり、典型的な Web アプリケーションでは、これがクラスパスにないことが問題だと思います。WEB-INF/classes/ フォルダーを作成し、そこに applicationContext.xml ファイルを配置することをお勧めします。

エラーは resources/appliationContext.xml について不平を言っているため、WEB-INF/classes/resources/ フォルダーを作成してそこに配置する必要がある場合もあります。

于 2012-11-06T00:58:15.060 に答える