2011-01-12 40 views
1

我知道Tomcat使用类加载器来分割webapps,并且Tomcat中的webapp类加载器会覆盖默认的类加载器行为,以便它在本地检查类,并且只在它无法找到时才委托给父类加载器。在Tomcat 6中为每个webapp独立加载核心类吗?

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

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

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

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

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

+0

你会在这里找到有用的信息:http://www.jajakarta.org/tomcat/tomcat3.2-4.0/tomcat-4.0b5/src/catalina/docs/dev/classloaders.html – 2011-01-12 11:20:40

回答

1

如果通过核心类文件引用已安装的JRE,那么tomcat将共享那些包含所有webapps的文件。

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

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

相关问题