“本地文件名”是指资源文件与类文件位于同一目录中。在下面的例子中,这是JUnitRunner.class
文件。爪哇的getResource() http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html#getResource%28java.lang.String%29如果路径不以以下方式开头,文件可以处理这个问题/
'
我不知道如何做同样的事情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)
...
UPDATE
XML 文件与类文件位于同一文件夹中。从事实可以看出getResource()
see it.
我不太明白你在问什么,但你尝试过吗:
new ClassPathXmlApplicationContext("classpath*:test01.xml");
这将在所有类路径中搜索test01.xml
。您可以在春季阅读更多相关内容资源 http://static.springsource.org/spring/docs/3.0.x/reference/resources.html文档页面。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)