Resin服务器getResource揭秘
(感谢网友 liuxiaori 继续分享其经历)这样的详细的图文并茂的文章让我很佩服!
目录
前言
调试环境
开始
1) this.getClass().getResource(“/”).getPath()
1) this.getClass().getResourceAsStream(“/a.txt”)
总结
前言
接上文“由一个问题到Resin ClassLoader的学习”,本文将以this.getClass().getResource(“/”).getPath()和this.getClass().getResourceAsStream(“/a.txt”)为例,一步步解析加载的过程。
调试环境
下载resin3.0.23的源码(http://www.caucho.com/download/resin-3.0.23-src.zip)。
部署到myeclipse中,有错误,本人忽略了。Resin可运行。
将EhCacheTestAnnotation部署到re ...
由一个问题到 Resin ClassLoader 的学习
(感谢网友 liuxiaori 分享其经历)
目录
背景
发展
结论
疑问
Resin中类加载器
类加载器顺序
总结
背景
某日临近下班,一个同事欲取任何类中获取项目绝对路径,不通过Request方式获取,可是始终获取不到预想的路径。于是晚上回家google了一下,误以为是System.getProperty(“java.class.path”)-未实际进行测试,早上来和同事沟通,提出了使用这个内置方法,结果人家早已验证过,该方法是打印出CLASSPATH环境变量的值。
于是乎,继续google,找到了Class的getResource与getResourceAsStream两个方法。这两个方法会委托给ClassLoader对应的同名方法。以为这样就可以搞定(实际上确实可以搞定),但验证过程中却发生了奇怪的事情。
软件环境:Windows XP、Resin 3、Tomcat6.0、Myeclipse、JDK1.5
发展
我的验证思路是这样的:
定义一个Servlet,然后在该Servlet中调 ...