一. 背景#
同一段代码在服务框架的服务端和客户端里重用, 客户端里classloader能load到资源文件, 但是服务端代码部署在tomcat容器里, classloader不能load到资源文件.
看来代码有个bug.直接上代码:
二.代码#
- 看到客户端里的classloader是AppClassLoader, 能load到classpath下的文件, 所以只要资源文件在classpath下就能load到.
- 在tomcat里跑,load当前类的是WebappClassloaer,所以this.getClass().getClassLoader()得到的也是 WebappClassloaer。
getSystemResouceAsStream()没有load到资源文件, 换成getResouceAsStream()后能load到。