【发布时间】:2014-02-24 02:29:56
【问题描述】:
线程“main”中的异常 org.springframework.beans.factory.BeanDefinitionStoreException: IOException 从类路径资源解析 XML 文档 [com/main/beans.xml];嵌套异常是 java.io.FileNotFoundException:类路径资源 [com/main/beans.xml] 无法打开,因为它不存在
ApplicationContext context =
new ClassPathXmlApplicationContext("com/main/beans.xml");
我之前试过
ApplicationContext context =
new FileSystemXmlApplicationContext("src/main/java/com/main/beans.xml");
而且效果很好。
相对于类路径如何做到这一点?
注意:类路径在构建路径中
在我下面的示例中,它具有以下结构并且可以正常工作
项目结构
类路径
ApplicationContext context =
new ClassPathXmlApplicationContext("com/caveofprogramming/spring/test/beans/beans.xml");
【问题讨论】:
-
xml 文件应该在
src/main/resources中,而不是在 java 中。使用 maven 编译时,如果 xml 文件不在资源中,则它们将被忽略(除非您做一些额外的工作将它们添加回来)。 -
在下面查看我的更新
-
@M.Deinum 谢谢——很有用!但是为什么它在示例中起作用?看来作者没有做额外的工作
-
它可能在 Eclipse 中工作(因为这在计算类路径时很糟糕,尤其是对于 Maven 项目),在构建 jar/war 时它不会在那个位置。
-
将 beans.xml 保存在类路径或保存 java 文件的 src/main/...pkg 中。然后使用 ClassPathXmlApplicationCONtext