日期:2014-05-18  浏览次数:20612 次

Tomcat类加载
tomcat有5个web项目,其他象commons-beanutils.jar,dom4j-1.4.jar等类,是放在tomcat的/common/lib下还是每个web项目下合理?
如果放在每个下面,是不是会每个下面都加载而导致占用更多的内存


总是发现内存OUT,是什么好方法检测,看日志看不出来

------解决方案--------------------
回答第一个问题:
关键就是搞清java的classloader. 每个web-app都有一个独立的classloader,在启动的时候,会以WEB-INF/lib/, tomcat/shared/lib/, tomcat/commom/lib/的顺序载入包,然后再载入classpath中的classes.
很明显,jar包放在common/lib中的时候,每个web-app都会加载到它.如果这个包并不是很web-app都要用到的话,最好把它在各自的web-app下.放在common/lib下反而会战用更多的内存.