Tomcat启动时classloader加载顺序
Tomcat的class加载的优先顺序一览
1.最先是$JAVA_HOME/jre/lib/ext/下的jar文件。
2.环境变量CLASSPATH中的jar和class文件。
3.$CATALINA_HOME/common/classes下的class文件。
4.$CATALINA_HOME/commons/endorsed下的jar文件。
5.$CATALINA_HOME/commons/i18n下的jar文件。
6.$CATALINA_HOME/common/lib 下的jar文件。
(JDBC驱动之类的jar文件可以放在这里,这样就可以避免在server.xml配置好数据源却出现找不到JDBC Driver的情况。)
7.$CATALINA_HOME/server/classes下的class文件。
8.$CATALINA_HOME/server/lib/下的jar文件。
9.$CATALINA_BASE/shared/classes 下的class文件。
10.$CATALINA_BASE/shared/lib下的jar文件。
11.各自具体的webapp /WEB-INF/classes下的class文件。
12.各自具体的webapp /WEB-INF/lib下的jar文件。
- 浏览: 15748 次
- 来自: 上海
最新评论
-
驭乐MJ:
好!谢谢!
eclipse快捷键 大全
相关推荐
### Tomcat启动时类加载顺序详解 #### 一、引言 Apache Tomcat是一款开源的Servlet容器,主要用于部署Java Web应用程序。它支持最新的Servlet、JSP等规范,并且以其轻量级、简单易用的特点而受到开发者的青睐。在...
【标题】:Tomcat启动顺序 【描述】:Tomcat作为Apache软件基金会的开源Java Servlet容器,其启动过程是理解其工作原理的关键部分。Tomcat的启动顺序涉及到多个层次的加载,从Bootstrap类开始,逐步加载系统配置、...
在Tomcat中,我们可以通过配置`catalina.properties`文件和`server.xml`文件来调整类加载策略,例如设置自定义的类加载顺序或启用共享类加载器。 此外,Tomcat还支持热部署,即在不重启服务器的情况下更新Web应用的...
1. Bootstrap ClassLoader:这是JVM启动时的第一个ClassLoader,负责加载JDK自身的类。 2. Common ClassLoader:这是所有Web应用共享的ClassLoader,用于加载全局共享的库,如`$CATALINA_BASE/lib`目录下的JAR文件...
例如,可以通过修改`common.loader`、`shared.loader`和`context.loader`属性来改变类的加载顺序和来源。 在深入研究"DevLoader"之前,需要查看压缩包内的具体文件,例如org目录下可能包含与DevLoader相关的源代码...
类和资源的加载顺序遵循以下原则: 1. `/Web-INF/classes` 2. `/Web-INF/lib/*.jar` 3. Bootstrap 4. System 5. `$CATALINA_HOME/common/classes` 6. `$CATALINA_HOME/common/endores/*.jar` 7. `$CATALINA_HOME/...
1. **Tomcat启动脚本catalina** Tomcat的启动脚本`catalina.sh/bat`是服务器运行的关键。这个脚本负责配置环境变量、初始化Java选项,并启动或关闭Tomcat服务器。通过研究这个脚本,我们可以了解如何配置JVM参数,...
当启动Tomcat时,其核心组件会按照一定的顺序初始化并准备就绪: 1. **Bootstrap ClassLoader**加载Bootstrap类库; 2. **Catalina ClassLoader**加载Tomcat核心类库; 3. **Common ClassLoader**加载Tomcat公共类库...
以下是类加载器的基本层级结构及其加载顺序: - **Bootstrap ClassLoader**:加载Java核心类库,位于`$JAVA_HOME/jre/lib/ext/*.jar`。 - **System ClassLoader**:加载用户自定义的类和类路径中的类库。 - **...
`Bootstrap`初始化ClassLoader时,会创建这些实例,并按照特定的顺序加载类。 - `Bootstrap`类加载器由JVM提供。 - `System`类加载器负责加载JDK的类路径中的类。 - `Common`类加载器加载`catalina.properties`...
3. **启动流程**:Tomcat的启动过程始于`bin/catalina.sh`或`catalina.bat`,这些脚本会初始化Java环境,并加载`catalina.jar`中的`org.apache.catalina.startup.ClassLoader`,接着加载`Server`对象,初始化`...
自定义类加载器可能会影响JAR包的加载顺序和方式,有时可能会导致Tomcat无法正确找到或识别JAR包。 4. 对于使用了第三方库或框架的项目,需要确保这些库或框架使用的JAR包版本与项目中其他依赖的版本兼容。不兼容的...
类的加载顺序** 当应用需要加载某个类时,Tomcat会按照以下顺序进行类加载: 1. 使用Bootstrap引导类加载器尝试加载。 2. 如果Bootstrap类加载器无法加载,则使用System系统类加载器尝试加载。 3. 如果System类...
- **System ClassLoader**:加载Tomcat启动的类。 - **Common ClassLoader**:加载Tomcat使用以及应用通用的一些类。 - **WebApp ClassLoader**:每个部署的应用程序都会创建一个唯一的类加载器来加载应用相关的类。...
7. **分析类加载顺序**:通过WebLogic的日志或工具,如`jarscan`,可以分析类加载顺序,找出冲突的根源。 8. **使用Maven或Gradle的依赖管理**:通过构建工具的依赖管理功能,可以更有效地控制应用的依赖关系,防止...
- **配置文件加载顺序**:`application.properties`或`application.yml`,然后根据`spring.profiles.active`加载对应的配置文件。 6. **网络** - **TCP三次握手**:SYN-SYN/ACK-ACK,确保连接双方都能正常通信。...
首先,问题的产生可能源于Spring Boot在启动时未能正确识别或加载自定义的日志配置文件。Spring Boot在初始化日志系统时,会通过`LoggingApplicationListener`这个类来查找和解析配置文件。`...
SpringBoot配置文件加载顺序是:`application.properties`或`application.yml`,然后是环境特定的配置。 Mybatis的优点是灵活的SQL映射,缺点是动态SQL支持不足。`#{}`和`${}`的区别在于,前者用于SQL占位符,后者...
- 类加载器双亲委派模型描述了类加载的顺序,从顶层的Bootstrap ClassLoader到自定义类加载器。 5. **Web服务器与优化**: - Tomcat使用自定义类加载器可以隔离应用的类库,防止冲突。 - Tomcat优化涉及JVM参数...