我正在开发使用数据库存储系统的 Web 应用程序,并且我选择将 dataAccess-applicationcontext
与其余部分分开。但是,当我运行以下代码行时,它说它不存在。
ApplicationContext ac = new ClassPathXmlApplicationContext("dataAccess-applicationContext.xml", UsageDataDAO.class);
我什至将 xml 文件移动到同一目录,结果却出现了与下面发布的相同的错误。
nested exception is java.io.FileNotFoundException: class path resource [com/foobar/bar/foo/dataAccess-applicationContext.xml] cannot be opened because it does not exist
知道这里发生了什么吗?
最佳答案
如果没有所有细节,这很难调试,但它必须是两个问题之一。
首先,该文件确实不在您的类路径中。这是一个 Web 应用程序,因此您应该考虑 how your particular servlet container works当您检查类路径时。例如,在servlet环境中,WEB-INF不在类路径中,但WEB-INF/classes在。
其次,该文件位于您的类路径中,但您错误地引用了它。根据您已经提供的信息,我认为情况并非如此,但这种可能性可以稍后扩展。
无论如何,您为什么要尝试手动加载文件?您应该引用 web.xml 中的配置。如果您提供有关如何运行 Web 应用程序的更多详细信息,那么我们可以帮助您完成这部分。同时,这个例子可能已经提供了足够的信息。它说明了如何配置由容器中的所有 Servlet 和 Filter 共享的根 spring 容器(配置特定的 Servlet 需要稍微不同的方法):
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/config1.xml, /WEB-INF/config2.xml</param-value>
</context-param>
关于java - Spring 3.0找不到applicationcontext.xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8746415/