【类加载器的高级问题——改变servlet的类加载器】
2014-03-30 16:36
351 查看
1、编写一个能打印自己的类加载器名称和当前类加载器的父子结构关系链的Servlet,正常发布后,能看到打印结果,第一个加载器是WebAppClassLoader。
2、把该Servlet的class文件打成jar包,放到ext目录下,重启tomcat,发现报找不到
HttpServlet的错误。
3、把servlet-api.jar也放到ext目录下,问题解决,打印结果为WxtClassLoader。
servlet代码
运行结果:
打成jar放在ext目录下
再次运行程序
[b]
[/b]
[b]再把tomcat下的servlet-api.jar拷贝到ext目录下[/b]
[b]
[/b]
[b]
[/b]
[b]运行程序[/b]
2、把该Servlet的class文件打成jar包,放到ext目录下,重启tomcat,发现报找不到
HttpServlet的错误。
3、把servlet-api.jar也放到ext目录下,问题解决,打印结果为WxtClassLoader。
servlet代码
package xom.xiaozhi.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class HelloServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); ClassLoader classLoader= this.getClass().getClassLoader(); while(classLoader!=null){ out.println(classLoader.getClass().getName()+"<br>"); classLoader=classLoader.getParent(); } out.close(); } }
运行结果:
打成jar放在ext目录下
再次运行程序
[b]
[/b]
[b]再把tomcat下的servlet-api.jar拷贝到ext目录下[/b]
[b]
[/b]
[b]
[/b]
[b]运行程序[/b]
相关文章推荐
- [网络收集]动态加载CSS,解决母版页无法改变CSS的问题
- 一个类加载器的高级问题
- XFire加载Servlet问题解决
- 改变css导致Flash swf 重新加载的问题
- MyEclipse 6.0下tomcat自动加载变动过的servlet问题
- 酷版移动端iframe改变src,重新加载页面问题探究
- Tomcat启动后加载两次servlet的问题
- JVM高级特性与实践(九):类加载器 与 双亲委派模式(自定义类加载器源码探究ClassLoader)
- servlet+jsp开发javaweb项目时加载文件出现FileNotFoundException的问题的解决办法
- 扩展类加载器的加载问题
- 一个类加载器的高级问题分析
- UIViewController view的加载情况,以及frame怎样改变问题
- Tomcat启动后加载两次servlet的问题
- 48_类加载器的一个高级问题的实验分析
- 扩展类加载器的加载问题
- spring-servlet.xml 和 application.xml 配置含义及bean被加载两次的问题
- android加载图像资源大小改变问题
- 关于一加载jsp页面就跳转到servlet获取数据然后再跳回jsp页面的问题
- 处理Extjs的gridpanel修改一条记录并重新加载store之后,已选项model的record并没有改变的问题
- 一个类加载器的高级问题分析