2011-05-09 3 views
10

Ok, actualmente estoy intentando mavenizar un proyecto. Sin embargo, mi proyecto no puede encontrar el archivo xml que contiene algunos beans. combined2.xmlIOException que analiza el documento XML del recurso de ruta de clase

lo tengo define como:

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

Sin embargo por una razón sin yo saberlo Recibo constantemente el error.

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) 

Causado por: java.io.FileNotFoundException: clase de recurso camino [src/main/java/recursos/combined2.xml] no se puede abrir porque no existe en org.springframework.core.io. ClassPathResource.getInputStream (ClassPathResource.java:141) en org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions (XmlBeanDefinitionReader.java:328) ... 14 más

en ningún lugar del programa se busca este archivo ya que le he dado la ruta relativa?

+1

no es por lo general de este patrón ' "src/main/resources/combined2.xml" ¿? –

Respuesta

27

Está intentando cargar este archivo desde el classpath y no puede encontrarlo. Intente especificar solo "combined2.xml" en lugar de "src/main/java/resources/combined2.xml" y asegúrese de que src/main/java/resources esté en su classpath.

Por cierto, en Maven, el directorio estándar para recursos es src/main/resources, por lo que le sugiero que coloque este archivo allí.

0

probar este

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

Maven, tiene directorio estándar de recursos es que es src/main/resources, por lo que si se mantiene el archivo aquí se va a tomar. y en la ruta simplemente dé el nombre del archivo.

Por ejemplo

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

que tenían el mismo problema que trabajó para mí

0
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. 
Cuestiones relacionadas