此类的作用,就是
* Initialize daemon. 初始化
* 主要有以下过程
* 1)设置环境变量,初始化类加载器,事实上就是为commonLoader,catalinaLoader,sharedLoader,不过这里其实都为
* commonLoader,因为其它几个并没配置,配置文件位于
org.apache,catalina.startup中的catalina.properties。
common.loader=${catalina.home}/lib,${catalina.home}/lib/*.jar
server.loader=
shared.loader=
* 2)设置当前线程当前类加载器,也是commonLoader,其实commonLoader就是批向tomcat/lib中的一个加载器.
也是tomcat的核心类库的加载位置,相然用的一些包也可以放在这个目录,同样可以被tomcat默认加载器
加载。
* 3)加载org.apache.catalina.startup.Catalina,并设置父加载器为commonLoader,最后把实例附值给catalinaDaemon
通过反射方式得到Catalina实例,同时设置Catalina的一个属性(也就是父加载器)为:commonLoader
然后把实例传给属性catalinaDaemon,其它方法通这个实例来操作类Catalina的实例。
* 初始化完成.
* 从这个初始化来看,只处理两个方面,1)设置加载器 2)产生Catalina实例
* 然后如一些start,load,stop都是调用类Catalina中相应方法来完成.(利用反射的方式)
我们看批处理最后执行的命令为:..apache.catalina.startup.Bootstrap start,显然带的参数是start.
在启动时主要执行Catalina实例的二个方法:
1)load
2)start
源码:
daemon.load(args); //加载参数,这里args为main方法中的参数,从最后批处理执行来看,只一个参数start,因此
//args中只有一个元素的数组,这个元素值为:start
daemon.start();
我们来看看方法Bootstrap中的load做了什么事。
----------------------------------------------------------------------------------------------------
/**
* Load daemon.
*/
private void load(String[] arguments)
throws Exception {
// Call the load() method
String methodName = "load";
Object param[]; //定义参数
Class paramTypes[]; //定义方法参数类型
if (arguments==null || arguments.length==0) {
paramTypes = null;
param = null;
} else {
paramTypes = new Class[1];
paramTypes[0] = arguments.getClass();
param = new Object[1];
param[0] = arguments;
}
Method method =
catalinaDaemon.getClass().getMethod(methodName, paramTypes);
if (log.isDebugEnabled())
log.debug("Calling startup class " + method);
method.invoke(catalinaDaemon, param);
}
注:从原码看得出来,这个方法是把从args主方法传入的值,也就是start再作为参数执行Catalina中的load方法。
再来看看start做了什么。
----------------------------------------------------------------------------------------------------
public void start()
throws Exception {
if( catalinaDaemon==null ) init(); //如果实例为空,进行初始化。
Method method = catalinaDaemon.getClass().getMethod("start", (Class [] )null);
method.invoke(catalinaDaemon, (Object [])null);
}
注:从原码看得出,也就执行Catalina中的start方法。
分享到:
相关推荐
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import java.util.List; ...
通过控制bootstrap接口实现对tomcat启动与关闭
Tomcat 排错方案一、报错问题解:1.报错2.解决方案:二、Tomcat启动成功无法访问 一、报错问题解: 1.报错 Using CLASSPATH: /...
项目介绍基于JSP+Servlet的网上订餐管理系统的设计与实现。该项目为前后台管理项目。前台主要展示给普通用户,主要功能有菜品分类、最新菜品、销售排行、美食... 前端:JSP+bootstrap+jQuery使用说明1. 使用IDEA/Ecli
tomcat6.x源码编译时需要依赖的所有JAR包...7.找到Bootstrap.java,debug as>debug configurations>VM arguments:输入-Dcatalina.base="(改成你自己的)E:\apache-tomcat-6.0.37-src\output\buildoutput\build" 8.OK.
tomcat6.x源码编译时需要依赖的所有JAR包:包括...7.找到Bootstrap.java,debug as>debug configurations>VM arguments:输入-Dcatalina.base="(改成你自己的)E:\apache-tomcat-6.0.37-src\output\buildoutput\build
信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jdk1.6.0_10\bin;C:\Program ...
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1...
基于Bootstrap的Java企业通用开发平台框架只引用了一个第三方jar包(sina.jar); 部门管理、字典管理、角色权限管理、字典管理、菜单管理、信息发布、用户密码加密 不同的用户角色权限不同可通过页面进行配置:具体...
【资源说明】 1、该资源包括项目的全部源码,下载可以...小区物业管理系统源码+项目说明(基于JavaEE采用MVC模式结合SSM框架+前端页面使用Bootstrap)(tomcat需要为8.5版本,9.0会导致js文件在浏览器显示为乱码).zip
Spring MVC+Mybatis+Ehcache+Apache Shiro+Bootstrap整合开发java仓库管理系统源码 开发环境:Eclipse ,JDK 1.8 ,Tomcat7 技术选型 后端技术 SpringMVC MVC框架 Spring Framework 容器 Apache Shiro 安全框架...
idea 开发 SSM 工程车辆人员管理系统是一套完善的信息管理系统,结合SSM框架和bootstrap完成本系统,对理解JSP java编程开发语言有帮助系统采用SSM框架(MVC模式开发),系统具有完整的源代码和数据库,系统主要...
6、基于Bootstrap的Java企业通用开发平台框架只引用了一个第三方jar包(sina.jar),这个第三方jar包的源码在附件压缩包里。 7、系统运行在JDK7+和Tomcat7+。 8、开发环境任何地方不要包含非英文路径。
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1...
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1...
java Web 辅助教学管理系统是一套完善的信息管理系统,结合java 开发技术和bootstrap完成本系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采 用B/S模式开发。 前段主要技术 ...
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1...
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1...
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1...
java Web健身管理系统是一套完善的信息管理系统,结合java 开发技术和bootstrap完成本系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S 模式开发。 前段主要技术 layUI ...