是否为Tomcat 6中的每个webapp独立加载了核心类?

时间:2011-01-12 11:14:31

标签: java tomcat6 classloader

我知道Tomcat使用类加载器来分区webapps,并且Tomcat中的webapp类加载器会覆盖默认的类加载器行为,因此它会在本地检查类,如果找不到它,则只委托父类加载器。

知道这一点我确信Tomcat会确保.war文件中的类只对该webapp可用,因为它将由该类加载器加载。

我不确定的是Tomcat如何对核心类进行分区,如果有的话。

我知道Java的核心类是由Bootstrap类加载器加载的。

但是,如果webapp类加载器首先尝试加载所需的类,这是否意味着webapp类加载器将自己加载核心类?

我想知道的是 Tomcat的类加载器层次结构是否确保为每个webapp单独加载核心Java类,或者它们是否在webapps之间共享?

1 个答案:

答案 0 :(得分:1)

如果您使用核心类文件引用已安装的JRE,则tomcat会与所有Web应用程序共享这些文件。

单独的类加载仅适用于放置在每个webapp lib目录中的jar文件。

即使是放在tomcat lib目录下的jar文件也会在所有应用程序之间共享。