在上一篇文章中,我们分析了tomcat的初始化过程,是由Bootstrap反射调用Catalina的load方法完成tomcat的初始化,包括server.xml的解析、实例化各大组件、初始化组件等逻辑。那么tomcat又是如何启动webapp应用,又是如何加载应用程序的ServletContextListener,以及Servlet呢?我们将在这篇文章进行分析我们先来看下整体的启动逻辑,tomcat由上往下,挨个启动各个组件:我们接着上一篇文章来分析,上一篇文章我们分析完了Catalina.load(),这篇文章来看看daemon.start();Bootstrapdaemon.start(
说到Tomcat的启动,我们都知道,我们每次需要运行tomcat/bin/startup.sh这个脚本,而这个脚本的内容到底是什么呢?我们来看看。启动脚本startup.sh脚本#!/bin/shos400=falsecase"`uname`"inOS400*)os400=true;;esac#resolvelinks-$0maybeasoftlinkPRG="$0"while[-h"$PRG"];dols=`ls-ld"$PRG"`link=`expr"$ls":'.*->\(.*\)$