【发布时间】:2013-04-02 21:42:42
【问题描述】:
出于某种原因(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 下我无法在类路径下包含 WEB-INF。我在stackoverflow中查看了很多问题,但我还没有找到解决方案。
如果我将 applicationContext.xml 文件移动到 src/main/java 文件夹下,我可以获取上下文,但是定义到 web.xml 文件中的 shiro 文件无法看到在 applicationContext 文件下定义的 shiro bean (我仔细检查过,bean 工作正常)。如何告诉 web.xml 从 src/main/java 获取内容?或者,我怎样才能到达 applicationContext.xml
【问题讨论】:
-
为什么要从控制器内部创建一个new ApplicationContext?改为自动装配现有的。
-
尝试使用 @Autowired 私有静态 ApplicationContext 上下文;但它始终为空。
-
试试这个:stackoverflow.com/questions/4914012/…。另外,不要让它成为静态的。
标签: java spring tomcat filter shiro