Tomcat启动时类加载顺序
第一阶段:
JVM启动相关
1.$JAVA_HOME/jre/lib/ext/*.jar
2.环境变量CLASSPATH中的*.jar和*.class
第二阶段:
TOMCAT启动相关
1.$CATALINA_HOME/common/classes/*.class
2.$CATALINA_HOME/commons/endorsed/*.jar
3.$CATALINA_HOME/commons/i18n/*.jar
4.$CATALINA_HOME/common/lib/*.jar文件。
注意:JDBC驱动之类的jar文件可以放在这里,这样就可以避免在server.xml配置好数据源却出现找不到JDBC Driver的情况
5.$CATALINA_HOME/server/classes/*.class
6.$CATALINA_HOME/server/lib/*.jar
7.$CATALINA_BASE/shared/classes/*.class
8.$CATALINA_BASE/shared/lib/*.jar
第三阶段:
CONTEXT(WEB应用)启动相关
1.各自具体的webapp: /WEB-INF/classes/*.class
2.各自具体的webapp /WEB-INF/lib/*.jar
Tomcat运行时类载入或查找顺序
1、Tomcat自定义载入器(一般为WebappClassLoader)本地缓存及ClassLoader缓存
2、Bootstrap class loader载入(在其安全目录内)
3、Extension class loader载入(在其安全目录内,比如这里为:$JAVA_HOME/jre/lib/ext/*.jar )
4、System class loader (在其安全目录内,比如这里为:CLASSPATH/)
注意:以上要优先主要是基于安全,避免类似自定义java.lang.Object优先于JDK的java.lang.Object被加载
5、/WEB-INF/classes/*.class
6、/WEB-INF/lib/*.jar
7、$CATALINA_HOME/common/classes
8、$CATALINA_HOME/common/endorsed/*.jar
9、$CATALINA_HOME/common/i18n/*.jar
10、$CATALINA_HOME/common/lib/*.jar
11、$CATALINA_BASE/shared/classes
12、$CATALINA_BASE/shared/lib/*.jar
分享到:
相关推荐
### Tomcat启动时类加载顺序详解 #### 一、引言 Apache Tomcat是一款开源的Servlet容器,主要用于部署Java Web应用程序。它支持最新的Servlet、JSP等规范,并且以其轻量级、简单易用的特点而受到开发者的青睐。在...
tomcat详解与启动加载顺序 tomcat详解与启动加载顺序
总结来说,Tomcat的启动顺序是一个自底向上,从核心到应用的过程,依次加载Bootstrap、System、Common、Shared和WebApp类加载器,确保了服务的正确初始化和Web应用程序的隔离运行。理解这一启动流程对于调试、优化和...
Tomcat7.0.62 启动类加载日志
类加载器在Tomcat中扮演着至关重要的角色,因为它们负责加载并管理运行时所需的Java类。这个"DevLoader.zip"文件可能包含与Tomcat自定义类加载器相关的资料,特别是名为"DevLoader"的类加载器,这可能是Tomcat为...
Java 类加载器是Java虚拟机(JVM)的核心组成部分,它负责将编译后的字节码文件(.class文件)加载到JVM中并转换为运行时的数据结构。Tomcat,作为广泛使用的Java Servlet容器,它自定义了一套类加载机制,以满足Web...
二是直接修改Tomcat的类加载策略,使其按照字母顺序加载JAR,但这可能会影响到其他应用的正确运行。 总的来说,理解Tomcat的类加载机制对于排查和解决问题至关重要。开发者应当注意,即使使用了相同版本的Tomcat和...
### Tomcat加载顺序详解 Apache Tomcat作为一款广泛使用的开源Servlet容器,其类加载机制是理解和维护基于Tomcat的应用程序的重要部分。Tomcat的类加载器遵循特定的加载顺序,确保了不同应用间的隔离性和资源的正确...
当Tomcat加载类时,它遵循以下顺序: - 使用Bootstrap类加载器尝试加载。 - 使用System类加载器尝试加载。 - 使用Webapp类加载器加载`WEB-INF/classes`下的类。 - 使用Webapp类加载器加载`WEB-INF/lib`中的jar...
1. **Bootstrap ClassLoader**:这是JVM启动时的第一个类加载器,负责加载JDK核心库(rt.jar)中的类。 2. **Extension ClassLoader**:加载JRE扩展目录(java.ext.dirs)下的JAR文件。 3. **System ClassLoader**...
在Tomcat中,我们可以通过编写一个Servlet类并将其配置在web.xml文件中,使得在Tomcat服务器启动时自动加载并初始化这个Servlet。 要实现在Tomcat启动时自动执行的Servlet,我们需要在Servlet的`init()`方法中添加...
在Web开发中,理解Web项目的启动时文件加载顺序是至关重要的,因为它直接影响到应用程序的初始化和运行。本文将深入探讨这个主题,重点关注Web容器如何处理配置文件`web.xml`,以及不同组件(如`context-param`、`...
- Tomcat使用自定义的类加载器,如`CommonClassLoader`、`CatalinaClassLoader`等,它们按照特定的层次结构加载类。 5. **初始化容器** - `Catalina`类是Tomcat的主要组件,负责管理所有Web应用。在启动过程中,...
3-7Tomcat中自定义类加载器的使用与源码实现(1).mp4
tomcat 开机启动,dos窗口去掉,tomcat 开机启动,dos窗口去掉
tomcat启动时执行java自定义方法,一般用于启动时赋值情况。
6. **日志管理**:Tomcat的日志文件通常位于`logs`目录下,包括`catalina.out`记录服务器的启动和运行信息,以及`host-manager`和`manager`应用的日志。通过分析日志,可以诊断和解决问题。 7. **Apache-tomcat-...
Bootstrap类加载器是JVM启动时的第一个加载器,负责加载JDK的核心类库。Tomcat使用Bootstrap类加载器,并通过指定`CATALINA_HOME/bin/bootstrap.jar`、`CATALINA_HOME/bin/tomcat-juli.jar`和`JAVA_HOME/lib/tools....
启动脚本会加载Tomcat的配置文件,初始化Java环境,然后启动服务器。 二、Tomcat停止脚本 停止脚本,通常为`shutdown.sh`或`shutdown.bat`,用于优雅地关闭Tomcat服务。它发送一个特定的命令到正在运行的Tomcat进程...
标题“Tomcat启动服务运行Servlet”涉及到的是Java Web开发中的核心概念,主要涵盖Tomcat服务器的启动过程以及Servlet的执行机制。Tomcat是一款开源、免费的Web应用服务器,广泛用于部署Java Servlet和JavaServer ...