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

新手上路,请多包涵

好的,我目前正在尝试 mavenise 一个项目。但是我的项目找不到包含一些 bean 的 xml 文件。 combined2.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:类路径资源 [src/main/java/resources/combined2.xml] 无法打开,因为它不存在于 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader. java:341) 在 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302) 在 org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143) 在 org.springframework .beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178)在org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149)在org.springframework.beans.factory.support.AbstractReaderBean .loadBeanDefinitions(AbstractBeanDefinitionReader.java:212) 在 org.springframework.context.support.AbstractXmlApplicationContext.loadBea nDefinitions(AbstractXmlApplicationContext.java:126)在org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:92)在org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130)在org .context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:465) 在 org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:395) 在 org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java: 139) 在 org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:93) 在 metadataPoC.RepeatingGrpPoC.(RepeatingGrpPoC.java:34) 在 metadataPoC.Main.main(Main.java:22) Caused by: java. io.FileNotFoundException: 无法打开类路径资源 [src/main/java/resources/combined2.xml]因为它不存在于 org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:141) 在 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:328) … 14 更多

既然我已经给了它相对路径,程序还会在哪里寻找这个文件?

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

阅读 1k
2 个回答

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

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

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

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

例如

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

我遇到了同样的问题,它对我有用

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

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