IOException синтаксический анализ XML-документа из ресурса пути к классу

Ok в настоящее время я пытаюсь mavenise проект. Однако мой проект не может найти xml-файл, содержащий некоторые компоненты. combined2.в XML

Я определил его как:

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

однако по неизвестной мне причине я постоянно получаю ошибку.

Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [src/main/java/resources/combined2.xml]; nested exception is java.io.FileNotFoundException: class path resource [src/main/java/resources/combined2.xml] cannot be opened because it does not exist
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:341)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(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.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:212)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:126)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:92)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130)
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:465)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:395)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:93)
at metadataPoC.RepeatingGrpPoC.<init>(RepeatingGrpPoC.java:34)
at metadataPoC.Main.main(Main.java:22)

вызвано: java.Ио.FileNotFoundException: ресурс пути класса [src/main/java/resources / combined2.xml] не удается открыть, так как он не существует на орг.springframework.ядро.Ио.ClassPathResource.getInputStream (ClassPathResource.java: 141) в орг.springframework.зернышки.фабрика.XML.XmlBeanDefinitionReader.loadBeanDefinitions (XmlBeanDefinitionReader.java: 328) ... Более 14

где еще программа будет искать этот файл, так как я дал ему относительный путь?

4 ответов


он пытается загрузить этот файл из пути к классам и не может его найти. Попробуйте указать просто "combined2.xml" вместо "src/main/java/resources/combined2.xml" и убедитесь, что src/main/java/resources находится на вашем пути к классам.

кстати, в Maven стандартным каталогом для ресурсов является src/main/resources, поэтому я предлагаю вам поместить этот файл туда.


Maven, имеет стандартный каталог для ресурсов, который является src/main / resources, поэтому, если вы сохраните свой файл здесь, он примет его. и в пути просто дайте имя файла.

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

У меня была та же проблема, что и у меня


попробуй такое

appContext = new ClassPathXmlApplicationContext(
            new String[] { "/**/combined2.xml", "/**/xxx.xml"});

You can use the relative path of the xml file.
relative path: path relative to your package where the XML file is located.

E.g. 
Assume,
package = beanfactory,  
xml file name = application-context.xml, 
and xml file in under this package.
then provide the path as "/beanfactory/application-context.xml"
ApplicationContext factory=new 
ClassPathXmlApplicationContext("/beanfactory/application-context.xml");
This works without errors.