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启动过程中 加载资源的顺序
tomcat详解与启动加载顺序 tomcat详解与启动加载顺序
Bootstrap-->System -->Common-->Catalina/Shared-->WebApp
Tomcat7.0.62 启动类加载日志
tomcat启动时立即调用quartz执行一次
DevLoader.zip tomcat 类加载器
Tomcat加载顺序。加载方法以及加载的顺序。
主要给大家介绍了关于tomcat8改了jar加载顺序的踩坑记录,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
3-7Tomcat中自定义类加载器的使用与源码实现(1).mp4
tomcat 开机启动,dos窗口去掉,tomcat 开机启动,dos窗口去掉
tomcat启动时执行java自定义方法,一般用于启动时赋值情况。
启动配置文件tomcat的配置文件,仅供参考
功能: 在tomcat启动时,就自动执行一servlet,此servlet隔段时间处理某一操作。
tomcat-juli.jar 用于在tomcat启动报错时除错
Tomcat启动时,通过监听器来实现,当tomcat启动时自动地访问本地地servlet。也可以实现访问本地jsp
tomcat启动时定时循环执行内容(action) 本人亲自编写的小程序,简单易懂,欢迎下载评论!
tomcat启动管理工具
tomcat启动|退出执行事件类: import java.io.File; import java.io.FileWriter; import java.io.IOException; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import ...
NULL 博文链接:https://sunfish.iteye.com/blog/1478036
windows及linux环境下,tomcat启动参数的设置。在Tomcat上运行j2ee项目代码时,经常会出现内存溢出的情况,解决办法是在系统参数中增加系统参数...