使用maven项目加载上下文文件

时间:2011-08-27 22:20:27

标签: spring maven

我在我的应用程序中使用maven build。我有这样的包裹:

1> src/test/java   // for Test application
2> src/main/java   // code 
3> src/main/resource  // resource files

at 1>我写了一个测试文件:

public void testLoginDetails() {
    new ClassPathXmlApplicationContext(
                new String[] { "/com/home/app/Home-ctx.xml" });

Home-ctx在2>处可用。即src / main / java / com / home / app / Home-ctx.xml

但是当我运行应用程序时,我遇到了常见的错误:

Caused by: java.io.FileNotFoundException: class path resource [com/home/app/Home-ctx.xml] cannot be opened because it does not exist
    at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:158)

我知道这是xml文件加载的类路径问题。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

你需要移动

src/main/java/com/home/app/Home-ctx.xml

src/main/resources/com/home/app/Home-ctx.xml

类路径资源需要放在resources文件夹中 - 目前您已将它们放在java文件夹下,该文件夹用于资源而非资源。

如果资源仅用于测试,则它应该位于src/test/resources。对于生产资源,它们位于src/main/resources之下。

参考