catalina主要负责启动关闭shell程序
bootstarp会通过java反射的方式创建catalina实例,在起收到指令之后通过catalina启动/关闭容器。
catalina有几个主要的方法
load
start
await
stop
load主要做这几件事情
在解析器里面加入standardServer的各种解析规则
获取conf/server.xml配置文件
在编译器解析配置的路径下的文件内容
standardServer初始化
如下是解析器中加入的一部分待解析规则
主要是解析server的配置以及server下各个资源的配置
start主要做如下几件事情
启动standardServer
将catalina的shutdownhook注册到JVM
如果之前(bootstrap)设置了等待状态那么切换等待状态接受命令行指令
await主要做如下事情
将standardServer设为等待状态
stop分为stop何stopServer两种方式
stop的主要过程是
移除shutdown hook
standardServer关闭
standardServer销毁
stopServer比stop更加麻烦一点,这部分代码理解的不是很透彻
先判断本地是否存在Server,如果不存在,则获取server.xml的配置,去根据ip和port发送shutdown指令,停止远端的server