Tomcat启动时类加载顺序及运行时类载入顺序

标签: tomcat 加载 运行时 | 发表时间:2013-07-05 18:02 | 作者:
出处:http://www.iteye.com
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    

已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [tomcat 加载 运行时] 推荐:

Tomcat启动时类加载顺序及运行时类载入顺序

- - ITeye博客
Tomcat启动时类加载顺序. 2.环境变量CLASSPATH中的*.jar和*.class. 4.$CATALINA_HOME/common/lib/*.jar文件. 注意:JDBC驱动之类的jar文件可以放在这里,这样就可以避免在server.xml配置好数据源却出现找不到JDBC Driver的情况 .

自己动手实现springboot运行时执行java源码(运行时编译、加载、注册bean、调用)

- - 掘金 后端
  看来断点、单步调试还不够硬核,根本没多少人看,这次再来个硬核的. 依然是由于apaas平台越来越流行了,如果apaas平台选择了java语言作为平台内的业务代码,那么不仅仅面临着IDE外的断点、单步调试,还面临着为了实现预览效果,需要将写好的java源码动态的装载到spring容器中然后调用源码内的某个方法.

简要说明如何在eclipse中的tomcat中进行配置使用springloaded在热加载更改的类

- - BlogJava-首页技术区
Oracle提供的JDK其实已经自带一定程度的热加载功能,但是如果你修改了类名,方法名,或者添加了新类,新方法的话. Tomcat都需要重新启动来使得刚才的更改生效. 而JRebel和springloaded都能有效地解决这个问题. 其中springloaded是开源软件,可以免费使用,尤其难得. 其主页:https://github.com/spring-projects/spring-loaded.

tomcat调优

- - 开源软件 - ITeye博客
1          概述. 本文档主要介绍了Tomcat的性能调优的原理和方法. 可作为公司技术人员为客户Tomcat系统调优的技术指南,也可以提供给客户的技术人员作为他们性能调优的指导手册. 2          调优分类. 由于Tomcat的运行依赖于JVM,从虚拟机的角度我们把Tomcat的调整分为外部环境调优和自身调优两类来描述.

Tomcat 优化

- - 编程语言 - ITeye博客
tomcat默认参数是为开发环境制定,而非适合生产环境,尤其是内存和线程的配置,默认都很低,容易成为性能瓶颈. linux修改TOMCAT_HOME/bin/catalina.sh,在前面加入. windows修改TOMCAT_HOME/bin/catalina.bat,在前面加入. 最大堆内存是1024m,对于现在的硬件还是偏低,实施时,还是按照机器具体硬件配置优化.

TOMCAT优化

- - 移动开发 - ITeye博客
        Tomcat是我们经常使用的 servlet容器之一,甚至很多线上产品都使用 Tomcat充当服务器. 而且优化后的Tomcat性能提升显著,本文从以下几方面进行分析优化.         一、内存优化.         默认情况下Tomcat的相关内存配置较低,这对于一些大型项目显然是不够用的,这些项目运行就已经耗费了大部分内存空间,何况大规模访问的情况.

基于Tomcat的WebSocket

- - ITeye博客
之前大概的看过WebSocket,当时Tomcat还不支持WebSocket,所以当时写了一篇基于Jetty的WebSocket实现,地址如下:. 现在Tomcat7.0.27发布了,从这个版本开始Tomcat就支持WebSocket了. Tomcat的WebSocket和Jetty的大致上差不多,大同小异,这里就简单的贴两个类吧:.

远程调试Tomcat

- - ITeye博客
  这种情况下只能通过查看远程服务器上的log来调试,如果出现unknown source说明编译的时候没有加入行号的信息,按如下修改.   a)通过javac编译时,默认相当于指定-g:source,lines,这样编译出来的class文件中会包含源代码和行号信息.   b)而通过ant编译时,默认相当于指定-g:none,这样编译出来的class文件会比较小,但是不包含任何调试信息,所以出错的时候就会打印出unknown source.

tomcat安全设置

- - Web前端 - ITeye博客
原链接: http://blog.163.com/wm_at163/blog/static/13217349020112171618892/. server.xml默认有下面一行:. 这样允许任何人只要telnet到服务器的8005端口,输入"SHUTDOWN",然后回车,服务器立即就被关掉了. 从安全的角度上考虑,我们需要把这个shutdown指令改成一个别人不容易猜测的字符串,可以同时把端口也改了.

Tomcat调优总结

- - CSDN博客研发管理推荐文章
Tomcat 优化分为系统优化,Java虚拟机调优,Tomcat本身的优化. 1.如何调整tomcat的占用内存. 1. linux 下编辑tomcat安装目录下的bin目录下的catalina.sh文件,windows下为catalina.bat. 2. 查找到tomcat内存参数一行:/ JAVA_OPTS,如果找不到则在第一行写上.