Spring - applicationContext.xml 无法打开,因为它不存在

新手上路,请多包涵

我有一个 Spring MVC 应用程序和 JUnit 测试与文件 applicationContext.xml 结合的问题。

在我的 JUnit 测试类中,我写道:

 final ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
service = (TestServiceImpl) context.getBean("testServiceImpl");

我得到的错误是找不到 aplicationContect.xml:

org.springframework.beans.factory.BeanDefinitionStoreException:从类路径资源 [applicationContext.xml] 解析 XML 文档的 IOException;嵌套异常是 java.io.FileNotFoundException: 类路径资源 [applicationContext.xml] 无法打开,因为它不存在

但它存在于 WEB-INF 文件夹中。

那么,这里出了什么问题?为什么 JUnit 测试文件不存在?

原文由 Tim 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 971
2 个回答

您应该将 Spring 文件保存在另一个文件夹中,标记为“source”(就像“src”或“resources”一样)。

WEB-INF 不是源文件夹,因此它不会包含在类路径中(即 JUnit 不会在那里寻找任何东西)。

原文由 biasedbit 发布,翻译遵循 CC BY-SA 2.5 许可协议

如果您使用 Maven,请在主目录中创建一个名为 resources 的目录,然后将您的 applicationContext.xml 复制到其中。

从您的 java 代码调用:

 ApplicationContext appCtx = new ClassPathXmlApplicationContext("applicationContext.xml");

原文由 duracell 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题