|
1、startup 读取配置文件配置的jar,lib下的jar,环境变量配置的jar。
2、catalina 读取tomcat内置的用户管理界面,读取配置tomcat-user.xml。
3、读取server.xml,根据层级关系设置到services对象中。每个节点都有自己的listener(用来根据配置,不同节点执行不同的代码)。
4、执行service下配置的Listener
5、执行Connector初始化
6、初始化流程结束,开始启动流程,注册MBean到JMX
7、StandardService start 执行本身listener
8、StandardEngine start 执行本身listener .读取/conf/tomcat5-mbeans.xml
9、StandardHost start 执行本身listener
10、StandardPipeline start 执行本身listener
11、HostConfig读取host-manager.xml, manager.xml
12、发布war工程文件
13、启动webapp的工程
14、listeners->filter->servlet,代码如下:
try {
// Create context attributes that will be required
if (ok) {
postWelcomeFiles();
}
// Set up the context init params
mergeParameters();
if (ok) {
// Notify our interested LifecycleListeners
lifecycle.fireLifecycleEvent(AFTER_START_EVENT, null);
}
// Configure and call application event listeners
if (ok) {
if (!listenerStart()) {
log.error( "Error listenerStart");
ok = false;
}
}
try {
// Start manager
if ((manager != null) && (manager instanceof Lifecycle)) {
((Lifecycle) getManager()).start();
}
// Start ContainerBackgroundProcessor thread
super.threadStart();
} catch(Exception e) {
log.error("Error manager.start()", e);
ok = false;
}
// Configure and call application filters
if (ok) {
if (!filterStart()) {
log.error( "Error filterStart");
ok = false;
}
}
// Load and initialize all "load on startup" servlets
if (ok) {
loadOnStartup(findChildren());
}
} finally {
// Unbinding thread
unbindThread(oldCCL);
} |
|
|