peter
2024-01-09
来自北京
请教老师几个问题: Q1:不同应用对应不同的加载类吗?? 本文中有这样一句话“每一个 context 都对应一个不同的 WebappClassLoader”,对于加载类,是不同的实例?还是不同的类? 比如context1和context2,理解1:context1对应WebappClassLoaderA;context2对应WebappClassLoaderB,是不同的类。 理解2:context1对应WebappClassLoader的实例1;context2对应WebappClassLoader的实例2,即同一个类的不同实例。 Q2:webroot目录下的测试代码,在实际的Tomcat中就是具体的web应用,对吗? Q3:一个应用中,两个ClassLoader可以加载同一个类(版本也相同)吗? Q4:WebappClassLoader不需要继承已有的接口或方法吗? WebappClassLoader算是自定义ClassLoader吧。记得以前看过关于自定义ClassLoader的文章,好像要继承系统已有的接口或方法,就是说要和已有的东西建立联系。但本课中的WebappClassLoader是个单独的类,并无继承。 Q5:运行后找不到类,报错: java.lang.ClassNotFoundException: test.TestListener (StandardHost.java:120) // Instantiate a new instance of this filter and return it Class<?> clazz = classLoader.getClassLoader().loadClass(listenerClass); 还没有调试。老师那边能正常运行吗?
展开