Tomcat6.0.18的bin目录下有一个bootstrap.jar文件,而这个jar中的内容在lib目录下的catalina.jar文件中也存在。为什么要把同样的class放在2个不同的jar中,而且还单独提取出来放到bin目录下?
从源码中可以看到,Tomcat6.0.18使用common ClassLoader加载lib目录下的jar,但执行启动脚本时,是把bin目录下的bootstrap.jar设置到-classpath中,然后执行MAINCLASS=org.apache.catalina.startup.Bootstrap。此时,是使用System ClassLoader来加载的Bootstrap.class。如果不单独提取出bootstrap.jar,而是将catalina.jar设置到-classpath中,这时catalina.jar中的所有class将会被System ClassLoader加载。
如果是后者就会出现问题了,catalina.jar中的类使用了通过common ClassLoader加载的lib目录下的jar中的class,而此时catalina.jar却是被System ClassLoader加载,默认的双亲委派会导致加载器的向上委托加载,导致catalina.jar中的class找不到common ClassLoader加载的class。
如果单独将bootstrap.jar提取出来,设置到-classpath中则就不会出现上述问题。而将bootstrap.jar放置到bin目录下,还有另外的用途,在源码中可以看到:
File bootstrapJar =
new File(System.getProperty("user.dir"), "bootstrap.jar
");
if (bootstrapJar.exists()
) {
try {
System.setProperty
("catalina.home",
(new File(System.getProperty("user.dir"), ".."))
.getCanonicalPath());
} catch (Exception e) {
// Ignore
System.setProperty("catalina.home",
System.getProperty("user.dir"));
}
} else {
System.setProperty("catalina.home",
System.getProperty("user.dir"));
}
分享到:
相关推荐
基于LINUX的TOMCAT6 apache-tomcat-6.0.18-src.tar.gz
tomcat_6.0.18_配置[文].pdf
这是关于Java服务器的一个很好的用例,或许你到今天还在为如何使用tomcat发愁,那么下载一下他,安装完成后,你会发现很简单。
Zotero-6.0.18_linux-x86_64.tar.bz2
java运行依赖jar包
tomcat6.0.18目前最新版2009.5.27/18.48
这是一个医药公司的进销存系统,JSP+MySQL 适合于毕业生的毕业设计需要改动部分内容
JAVA web 应用 一些技术服务器搭建 都可以应用 非常强大的服务软件工具 网络转载 不能使用时,请及时联系
tomcat-6.0.18
VirtualBox-6.0.18-136238-Win.exe
解压完即可用,不用安装,可以直接在myeclipse里配置即可
JkWorkersFile "D:\apache-tomcat-6.0.18\conf\workers.properties" JkMount /examples/* ajp13 #此处是servlet和jsp的挂载点 3,在tomcat6的目录下的conf目录里面建立workers.properties 4,检查tomcat的server.xml...
tomcat6.0.18.rar,开源服务器软件,适用于windows xp/2000系统
juli-6.0.18.jar junit-4.11-sources.jar junit-4.11.jar log4j-1.2.17.jar log4j-api-2.0-rc1.jar log4j-api-2.3.jar log4j-core-2.0-rc1.jar log4j-core-2.3.jar log4jdbc-remix-0.2.7.jar logback-classic-1.0.0....
tomcat6.0.18 适用于windows平台。
tomcat_6.0.18_基础配置: 第一步:下载jdk和tomcat:JDK下载 Tomcat下载; 第二步:安装和配置你的jdk和tomcat; 第三步:建立自己的jsp app目录 ; 第四步:建立自己的Servle; 第五步:建立自己java Bean; 第六...
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with ... The ASF licenses this file to You under the Apache License, ...
n cas-server-3.4.2\modules\cas-server-support-jdbc-3.4.2.jar 、 cas-server-integration-restlet-3.4.2.jar 拷贝到 D:\server\apache-tomcat-6.0.18\webapps\cas\WEB-INF\lib 目录下。 n 数据库驱动 jar 拷贝...
tomcat-6.0.18 安装版 tomcat-6.0.18 安装版tomcat-6.0.18 安装版
liunux下 安装包apache-tomcat-6.0.18.tar.gz 可解压缩后直接安装!!!!!!