【问题标题】:nested exception is java.io.FileNotFoundException: class path resource [my-config.xml] cannot be opened because it does not exist嵌套异常是 java.io.FileNotFoundException:类路径资源 [my-config.xml] 无法打开,因为它不存在
【发布时间】:2022-01-24 03:52:22
【问题描述】:

我对 Java 比较陌生,正在尝试学习 Spring 框架。我有以下代码

public class EmployeeTest {
    public static void main(String ...args) {
        ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("my-config.xml");
        Employee employee = (Employee) ctx.getBean("emp");
        System.out.println(employee.getId());
        System.out.println(employee.getName());

    }
}

my-config.xml 位于EmployeeTest 类本身所在的位置。但是,当我运行此代码时,出现以下异常:

Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [my-config.xml]; nested exception is java.io.FileNotFoundException: class path resource [my-config.xml] cannot be opened because it does not exist

按照一些文章的建议,我尝试将 my-config.xml 放在 src/main/java 下,但还是没有成功

我正在使用 IntelliJ Idea 作为编辑器。 非常感谢任何提示

【问题讨论】:

  • 如果你试图通过类路径访问配置文件,它需要在src/main/resources

标签: java spring


【解决方案1】:

如果你使用Maven构建你的应用程序,你应该把my-config.xml文件放到src/main/resources目录

【讨论】:

  • 好的,谢谢!!!成功了
【解决方案2】:

好的,我找到了解决方案。所以我在src/main 下创建了一个resources 目录并将我的my-config.xml 放在那里。开始工作后

【讨论】:

    【解决方案3】:

    您正在使用 Spring 的 ClassPathXmlApplicationContext 类。正如类名所暗示的那样(javadoc 表示)这会从应用程序类路径加载其配置文件。

    但是src/main/java 树的内容不在类路径中。将文件放入src/main/resources ... 这将(通常)直接添加到类路径中,或者添加到 Maven / Gradle / 您的 IDE 生成的 JAR 或 WAR 文件中。

    另见:


    我尝试按照一些文章的建议将my-config.xml 放在src/main/java 下,但仍然没有成功。

    是的……不。除非您做其他(可能是不可取的)事情,否则src/main/java 中的文件不在类路径中,ClassPathXmlApplicationContext 不会找到。

    如果那些文章真的建议将其作为 this 上下文的解决方案,那么它们就是完全错误的。如果您使用的是FileSystemXmlApplicationContext,那么这种方法可以工作......但是使用相对路径名很脆弱(这取决于应用程序的工作目录是什么),并且当您在生产中部署应用程序时,引用源代码树的路径名通常不起作用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-19
      • 1970-01-01
      • 2019-09-05
      • 2012-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多