package org.apache.catalina.startup;
public final class
Bootstrap
Bootstrap 是tomcat的启动入口类。它负责构建一个class loader用来装载Catalina的内部类,并且启动tomcat。这样做可以使得Catalina的内部类和系统class path相分离,从而使他们对应用程序级别的类不可见。
主要的方法:
主函数:main
public static void main(String args[])
这自然是入口方法:
首先,判断if (daemon == null),创建:daemon = new Bootstrap();,然后调用daemon.init(); 然后,根据传入的参数(start, startd, stopd, start)来调用daemon 的start或者stop方法。
daemon.init()
首先设置Catalina path
setCatalinaHome();
setCatalinaBase();
然后,调用 initClassLoaders();
然后,用catalinaLoader装载我们的startup类org.apache.catalina.startup.Catalina,并且调用他的process()方法。然后,设置
共享扩展类的loader。最后将新建的Catalina实例付给catalinaDaemon。
initClassLoaders()
调用createClassLoader方法创建commonLoader, catalinaLoader和sharedLoader。
commonLoader 是 catalinaLoader和sharedLoader 的父loader。如果commonLoader 没有指定的配置文件commonLoader.loader那就用当前的loader。
commonLoader=this.getClass().getClassLoader();
createClassLoader()
如果没有相应的配置文件,就返回父loader。在single环境中,3个loader都指向当前的loader。
daemon.start()
调用catalinaDaemon的start方法。
分享到:
相关推荐
总结来说,Tomcat 6的启动过程涉及到Bootstrap类的初始化、Catalina类的加载和配置解析,以及Digester的XML解析功能。这个过程保证了Tomcat能够正确地加载和应用配置,启动并运行Java Web应用程序。理解这一过程对于...
### Tomcat 6.0 启动过程分析 #### Bootstrap 类的作用 `Bootstrap` 类作为 Tomcat 的启动入口,承担着构建一个独立的类加载器的任务,用于装载 `Catalina` 的内部类,以此来确保这些内部类与系统的 classpath 相...
SpringBoot是Spring框架的一个衍生项目,旨在简化Spring应用的初始搭建以及开发过程。它通过自动配置和起步依赖(Starter POMs)使得创建独立的、生产级别的基于Spring的应用变得极其简单。SpringBoot摒弃了XML配置...
- `${tomcat.home}/bin/bootstrap.jar" fork="true">`:通过执行Tomcat的bootstrap.jar文件来启动Tomcat。`fork="true"`表示在新的Java虚拟机进程中运行该任务。 - `<jvmarg value="-Dcatalina.home=${tomcat.home...
- **Bootstrap 类**:启动过程始于`Bootstrap`类。这个类主要负责创建Tomcat的主要组件,并初始化系统环境。 - `initClassLoaders()`:初始化类加载器,为后续的组件加载做准备。 - `parse(server.xml)`:解析`...
"org.apache.catalina.startup.Bootstrap"是调试的入口点,它是Tomcat启动过程的核心类。Bootstrap负责初始化Tomcat的基本组件,如加载配置文件、创建并启动Catalina容器,以及执行其他必要的初始化任务。当你在...
1. **Tomcat启动脚本catalina** Tomcat的启动脚本`catalina.sh/bat`是服务器运行的关键。这个脚本负责配置环境变量、初始化Java选项,并启动或关闭Tomcat服务器。通过研究这个脚本,我们可以了解如何配置JVM参数,...
- **System类加载器**:加载Tomcat启动所需的类,如bootstrap.jar。 - **Common类加载器**:加载Tomcat共用的类库,这些类库位于`CATALINA_HOME/lib`目录下。 - **Webapp类加载器**:每个Web应用程序都有自己独立...
这个类是Tomcat启动的入口点。 4. **Bootstrap类解析**: - `main`方法中,“start”关键字引导程序进入`start`方法,进而调用`load`方法。 - `load`方法通过反射机制加载`org.apache.catalina.startup.Catalina`...
通常表现为在尝试启动Tomcat时,控制台窗口快速出现后又立即关闭,导致无法正常启动Tomcat服务。这不仅影响了开发者的工作效率,还可能成为部署应用程序过程中的障碍。本文将针对这一问题进行深入分析,并提供一种...
首先,Tomcat的启动过程始于`startup.bat`或`startup.sh`脚本,这些脚本最终调用`org.apache.catalina.startup.Bootstrap`类的`main`方法。此方法的首要任务是定义和初始化Tomcat的类加载器。类加载器是Java程序中至...
- **脚本功能**:`catalina.bat`是Tomcat启动过程中的关键脚本之一,其主要作用在于构建合适的Java命令行参数,进而启动Tomcat服务。此脚本根据环境变量及用户提供的命令行参数,生成并执行最终的Java命令。 - **...
Tomcat 启动过程分析 Tomcat 的启动主要涉及以下几个步骤: 1. **启动命令行参数**:通常通过执行`startup.bat`或`startup.sh`脚本来启动Tomcat。这些脚本设置JVM的环境变量,如`catalina.base`和`catalina.home`...
标题“Tomcat启动脚本”涉及的是Apache Tomcat服务器的启动流程,这通常涉及到一系列的配置文件和命令行操作。Tomcat是Java Servlet和JavaServer Pages(JSP)的开源应用服务器,它提供了运行Web应用程序的环境。在...
通过阅读和分析源码,可以深入了解Spring Boot的自动配置、AOP、RESTful API设计,以及Bootstrap的响应式布局和组件使用。这对于提升Web开发技能,尤其是微服务架构和前端框架的应用有极大的帮助。
在SpringBoot的基础上,这个系统利用了Spring Boot的自动配置、内嵌式Web服务器(如Tomcat)以及对Spring MVC的集成,大大简化了项目的构建和部署过程。开发者无需过多关注繁琐的配置,而是可以更加专注于业务逻辑的...
7. **启动过程**: - `StandardServer.start`继续执行启动流程,触发启动事件。 #### 四、总结 通过上述对Tomcat源码的分析,我们可以更深入地理解Tomcat内部的工作原理和架构设计。特别地,了解Tomcat如何管理其...
#### 3.1 启动过程 当启动Tomcat时,其核心组件会按照一定的顺序初始化并准备就绪: 1. **Bootstrap ClassLoader**加载Bootstrap类库; 2. **Catalina ClassLoader**加载Tomcat核心类库; 3. **Common ClassLoader*...
1. **启动流程**:从`org.apache.catalina.startup.Bootstrap`类的`main()`方法开始,了解Tomcat如何初始化并启动各个组件。 2. **请求处理**:关注`org.apache.coyote`包下的Request和Response对象,以及对应的...