Под „местно име на файл“ имам предвид, че файлът с ресурси се намира в същата директория като файла на класа. В случая по-долу това е JUnitRunner.class
файл. getResource()
< на Java /a> файлът може да се справи с това, ако пътят не започва с /
'
Не мога да разбера как да направя същия ClassPathXmlApplicationContext
конструктор?
package springtests;
import java.io.File;
import java.net.URISyntaxException;
import java.net.URL;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class JUnitRunner {
private final static Logger log = LoggerFactory.getLogger(JUnitRunner.class);
@Test
public void test() throws URISyntaxException {
String filename = "test01.xml";
URL url = getClass().getResource(filename);
File file = new File(url.toURI());
log.info("File exists: {}", file.exists());
try {
new ClassPathXmlApplicationContext(filename);
}
catch(Exception e) {
log.error("Can't load context", e);
}
}
}
изходът следва
15:32:27,375 3 [main] INFO springtests.JUnitRunner - File exists: true 15:32:27,422 50 [main] INFO org.springframework.context.support.ClassPathXmlApplicationContext - Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@ee3aa7: startup date [Thu Nov 01 15:32:27 MSK 2012]; root of context hierarchy 15:32:27,475 103 [main] INFO org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loading XML bean definitions from class path resource [test01.xml] 15:32:27,477 105 [main] ERROR springtests.JUnitRunner - Can't load context org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [test01.xml]; nested exception is java.io.FileNotFoundException: class path resource [test01.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) ...
АКТУАЛИЗАЦИЯ
XML файлът се намира в същата папка като файла на класа. Вижда се от факта, че getResource()
го вижда.