1.解决方法
tomcat lib新建shared文件夹,放置共通jar
不能加入tayers系列jar包 (单例模式?)
cataline.properties 配置 common.loader
2.问题
配置文件读取混乱
部分项目,请求返回错误
jar调用工作机制
3.Tomcat优化
内存使用配置
PermSize: 内存溢出,类定义,占用后不再释放
XX:PermSize XX:MaxPermSize
JDK1.8 不再使用Perm内存,使用Metaspace对内存共享,不再存在内存溢出问题
Metaspacer
默认根据程序运行需要动态设置大小
占用达到Max值,会对死亡对象和类加载器垃圾回收
最大连接数
4.Tomcat加载机制
tomcat启动后,会创建一组类
BootStrap JVM基本类
System tomcat启动类
common 通用类
应用1 应用2 每个程序都有唯一类加载器
加载流程
首先加载BootStrap,再加载System,然后加载每个应用,最后加载共通类
为了减少内存占用
可以把共通jar放到通用类
5.注意
1)有依赖关系的Jar放在一起,要么放在tomcat下,要么放在webapp,不能分开
2)普通Jar,要么放到tomcat下,要么放在webapp下,不能重复
问题1:
java.lang.NoClassDefFoundError: Could not initialize class org.logicalcobwebs.cglib.proxy.Enhancer
来源张永光的博客