bootstrap->init()->initClassLoader()->CatalinaProperties会加载Tomcat8/conf/catalina.properties 文件 -> load org.apache.catalina.startup.Catalina -> Catalina.load()
catalina类会加载Tomcat8/conf/catalina.properties 和Tomcat8/conf/server.xml 文件
catalina load() 时,StandardServer 会 init() 会调用StandardService init() 中两个Connector[HTTP/1.1-8080], Connector[AJP/1.3-8009] 会调用init()
catalina start() 时会调用StandardServer[8005] start()会调用 StandardService[Catalina] start() 调用StandardService.startInternal()在这个方法中会调用Connector.start()在Connector.start()方法中调用Connector.startInternal()在这个方法中调用
Http1NioProtocol.start()在这个start方法中会调用NioEndpoint.start()
在catalina.start()方法中会调用Catalina.await()方法,这个方法中会调用StandarServer.await()方法,在这个方法中会通过 awaitSocket = new ServerSocket(port, 1,InetAddress.getByName(address));创建ServerSocket的实例,
server启动后,Catalina 会调用 await() 方法一直等待
StandardServer extends LifecycleMBeanBase extends LifecycleBase
StandardService extends LifecycleMBeanBase extends LifecycleBase
connector extends LifecycleMBeanBase extends LifecycleBase
catalina类会加载Tomcat8/conf/catalina.properties 和Tomcat8/conf/server.xml 文件
catalina load() 时,StandardServer 会 init() 会调用StandardService init() 中两个Connector[HTTP/1.1-8080], Connector[AJP/1.3-8009] 会调用init()
catalina start() 时会调用StandardServer[8005] start()会调用 StandardService[Catalina] start() 调用StandardService.startInternal()在这个方法中会调用Connector.start()在Connector.start()方法中调用Connector.startInternal()在这个方法中调用
Http1NioProtocol.start()在这个start方法中会调用NioEndpoint.start()
在catalina.start()方法中会调用Catalina.await()方法,这个方法中会调用StandarServer.await()方法,在这个方法中会通过 awaitSocket = new ServerSocket(port, 1,InetAddress.getByName(address));创建ServerSocket的实例,
server启动后,Catalina 会调用 await() 方法一直等待
StandardServer extends LifecycleMBeanBase extends LifecycleBase
StandardService extends LifecycleMBeanBase extends LifecycleBase
connector extends LifecycleMBeanBase extends LifecycleBase