找不到applicationContext类路径

时间:2013-04-10 20:54:26

标签: java spring tomcat filter shiro

出于某种原因(shiro过滤器)我将我的应用程序上下文文件保存在WEB-INF文件夹中。当我运行tomcat但是,当我尝试使用以下命令从控制器获取应用程序上下文时,一切正常:

context = new ClassPathXmlApplicationContext(fileContext);

我总是收到这个例外:

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

似乎在ecplise下我无法在classpath下包含WEB-INF。我在stackoverflow中看了很多问题,但我还没有找到解决方案。

如果我将applicationContext.xml文件移到src / main / java文件夹下,我就可以获取上下文但是,定义到web.xml文件中的shiro filder无法看到在applicationContext文件下定义的shiro bean (我仔细检查了豆子是否正确工作)。如何告诉web.xml从src / main / java获取内容?或者,我如何到达applicationContext.xml

4 个答案:

答案 0 :(得分:2)

WEB-INF不在您的CLASSPATH中。 WEB-INF / classes是。那么为什么不把它放在源文件夹中并打包应用程序呢?

答案 1 :(得分:2)

使用

context = new FileSystemXmlApplicationContext(fileContext);

而不是

context = new ClassPathXmlApplicationContext(fileContext);

答案 2 :(得分:1)

不要在控制器中创建ApplicationContext的实例。春天DispatcherServlet已经为你创造了一个。您需要做的就是使用@Autowired访问应用程序上下文文件中的所有bean声明。

答案 3 :(得分:0)

问题已解决,在WEB-INF / classes下移动所有配置文件并添加前缀classpath:

<import resource="classpath:spring-data.xml"/> 

感谢大家的帮助!我真的很感激!

欢呼,安德莉亚