IOException 从类路径资源分析 XML 文档

2022-09-03 16:43:44

好的,我目前正在尝试一个项目。但是,我的项目无法找到包含一些bean的文件。mavenisexmlcombined2.xml

我将其定义为:

    public RepeatingGrpPoC() {
    appContext = new ClassPathXmlApplicationContext(
            new String[] { "src/main/java/resources/combined2.xml",});
    c = 0;    
}

但是,由于我不知道的原因,我经常收到错误。

线程“main” org.springframework.beans.factory.BeanDefinitionStoreException中的异常:IOException从类路径资源[src/main/java/resources/combined2.xml]解析XML文档;嵌套异常是 java.io.FileNotFoundException: class path resource [src/main/java/resources/combined2.xml] 无法打开,因为它不存在于 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:341) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinition(XmlBeanDefinitionReader.java:302) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinition(AbstractBeanDefinitionReader.java:149) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:212) at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicatitionContext.java:126) at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:92) at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130) atorg.springframework.context.support.AbstractApplicationContext.getFreshBeanFactory(AbstractApplicationContext.java:465) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:395) at org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:139) at org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:93) at metadataPoC.RepeatingGrpPoC.(RepeatingGrpPoC.java:34) at metadataPoC.Main.main(Main.java:22) Caused by: java.io.FileNotFoundException: class path resource [src/main/java/resources/combined2.xml] 無法開啟,因為它不存在於 org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:141) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:328) ...另外 14

由于我已经为它提供了相对路径,程序还会在哪里查找此文件?


答案 1

它正在尝试从类路径加载此文件,但找不到它。尝试指定而不是并确保 src/main/java/resources 位于类路径上。"combined2.xml""src/main/java/resources/combined2.xml"

顺便说一句,在Maven中,资源的标准目录是 ,所以我建议你把这个文件放在那里。src/main/resources


答案 2

Maven,有资源的标准目录是src/main/resources,所以如果你把你的文件留在这里,它会拿走它。并在路径中简单地给出文件名。

例如

 ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("application-context.xml");

我有同样的问题,它为我工作


推荐