48_类加载器的一个高级问题的实验分析

classloader_web

 

这是一个实验,源代码 链接:http://pan.baidu.com/s/1c0ix9UK 密码:ssvd

1、让tomcat加载MyServlet

http://localhost:8080/itcastweb/servlet/MyServlet

image

 

2、让jvm加载MyServlet

导出MyServlet.class到 D:Program FilesJavajdk1.8.0jrelibextitcast_web.jar,

则java虚拟机的ExtClassLoader加载了MyServlet.class类,

MyServlet相关的类也要由ExtClassLoader加载

而D:Program FilesJavajdk1.8.0jrelibext路径下,不存在servlet-api.jar,

当父亲BootStrap找不到,推回给儿子ExtClassLoader也找不到HttpSerlvet时,就抛出了错误。

http://localhost:8080/itcastweb/servlet/MyServlet

image

把tomcat_homelibservlet-api.jar拷贝到 D:Program FilesJavajdk1.8.0jrelibext中,

来让JVM的ExtClassLoader加载MySerlvet和相关的HttpServlet类

itcast_web5

 

再次访问:http://localhost:8080/itcastweb/servlet/MyServlet

itcast_web4

原文地址:https://www.cnblogs.com/qq-757617012/p/4274246.html