wake-up-neo.com

IOException analysiert das XML-Dokument aus einer Klassenpfadressource

Ok, ich versuche gerade, ein Projekt zu erstellen. Mein Projekt kann jedoch die XML-Datei nicht finden, die einige Beans enthält. kombiniert2.xml

Ich habe es definiert als:

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

Aus einem mir unbekannten Grund bekomme ich jedoch ständig den Fehler.

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)

Ursache: Java.io.FileNotFoundException: Klassenpfadressource [src/main/Java/resources/combined2.xml] kann nicht geöffnet werden, da In org.springframework.core.io.ClassPathResource.getInputStream nicht vorhanden ist (ClassPathResource.Java:141) At org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions (XmlBeanDefinitionReader.Java:328) ... 14 weitere

Wo sonst würde das Programm nach dieser Datei suchen, da ich den relativen Pfad angegeben habe?

11
Will

Es wird versucht, diese Datei aus dem Klassenpfad zu laden und kann sie nicht finden. Geben Sie einfach nur "combined2.xml" anstelle von "src/main/Java/resources/combined2.xml" an und stellen Sie sicher, dass sich src/main/Java/resources in Ihrem Klassenpfad befindet.

In Maven ist das Standardverzeichnis für Ressourcen übrigens src/main/resources. Ich schlage vor, Sie legen diese Datei dort ab.

31
dogbane

Maven hat ein Standardverzeichnis für Ressourcen, das heißt src/main/resources. Wenn Sie Ihre Datei hier belassen, wird sie.... Und im Pfad geben Sie einfach den Dateinamen an.

Zum Beispiel

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

Ich hatte das gleiche Problem, das für mich funktioniert hat

1
Varun

Sie müssen Ihre XML-Datei im Ressourcenordner ersetzen und Folgendes schreiben:

 String[] contextPaths = new String[] {"Xxx.xml"};
    new ClassPathXmlApplicationContext(contextPaths);

Wenn Sie keine zusätzliche Konfiguration vorgenommen haben, durchsucht Spring alle HTML- und XML-Dateien standardmäßig den Ressourcenordner

1
user10934825

Versuche dies

appContext = new ClassPathXmlApplicationContext(
            new String[] { "/**/combined2.xml", "/**/xxx.xml"});
0
Anand Devaraj
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.
0
Vinod Kumar