Tomcat 6 启动过程分析 (2) - Catalina

package org.apache.catalina.startup;
public class Catalina extends [b]Embedded[/b]

Embedded 类主要负责Catalina 的 Startup/Shutdown。 它继承自Embedded, Embedded又继承自StandardService,并实现Lifecycle接口,StandardService实现了 Lifecycle, Service 和MBeanRegistration 接口。它和Embedded做一样的事情,只不过要用到"conf/server.xml"。

[b]主要方法:[/b]

[color=blue][b]start()[/b][/color]
Bootstrap的start方法最后调用了Catalina 的start方法来启动Tomcat。先判断server (org.apache.catalina.Server)是不是null,是的话调用load()方法。
然后启动server: ((Lifecycle) server).start();
然后注册shutdown守护进程。Runtime.getRuntime().addShutdownHook(shutdownHook);
最后调用await()方法,监听指定的端口(8080),等待shutdown命令的到来,以关闭tomcat。
[color=green]至此,server就启动起来了。[/color]

[color=blue][b]load()[/b][/color]
load 方法 开启一个新的 server 实例。server实例是单例的,代表整个JVM, 首先,调用父类 Embedded 的 initDirs() 方法来设置目录:
System.setProperty("catalina.home", catalinaHome);
System.setProperty("catalina.base", catalinaBase);
然后,initNaming();
然后, 构建并执行server.xml解析器 Digester,
Digester digester = createStartDigester();
Digester 用来处理XML输入流,也就是解析server.xml。
然后, 装载配置文件server.xml (file = configFile();), 用 digester.parse(inputSource)来构建Server (StandardServer),

最后初始化server, server.initialize()。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值