1

在我的网络应用程序中,我正在尝试使用弹簧安全性。我有以下项目结构:

项目结构

在我的 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 战争插件。

检查您的目标文件夹实际上包含文件。

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 回答