我从classpath下查找一个资源文件,在weblogic下试了很多方法都找不到:
1、
ClassLoader cl = Thread.currentThread().getContextClassLoader();
Enumeration
2、
ClassLoader cl = org.springframework.util.ClassUtils.class.getClassLoader();
Enumeration
3、
ClassLoader cl = ClassLoader.getSystemClassLoader();
Enumeration
4、
Enumeration
但是,通过ResourcePatternResolver却可以获取到:
String path = “classpath*:” + resourcePath;
ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
Resource[] resources = resolver.getResources(path);
原因:spring实际用的ClassLoader是这个
weblogic.utils.classloaders.ChangeAwareClassLoader
最初来自于Thread.currentThread().getContextClassLoader()
但是只有容器启动时才能获取到,后面通过web请求触发的,thread不一样