共享jar

tomcat多应用之间如何共享jar

北慕城南 提交于 2019-11-30 11:25:49
在上一篇博客中介绍了如何在一个 tomcat 中创建多个应用,但是往往在项目中会包含很多相同的 jar 包,这样, tomcat 加载多个项目的时候会经常出现 java.lang.OutOfMemoryError: PermGen space 内存溢出的异常。 PermGen space 到底是什么异常呢? permGen space 的全称是 Permanent Generation space ( 内存永久保存区域 ) , 从表面看这个问题就是内存溢出了,解决方案就是加大服务器的内存。但是为什么会出现内存溢出呢? class 在被类加载器 loader 的时候会放入到 permGen space 这个区域,他和存放 Instance 的 Heap 区域不同, Garbage Collection 不会在主程序运行期间对这个区域进行清理,所以如果我们的应用中有很多 class 被加载到这个区域时,就可能会出现 java.lang.OutOfMemoryError: PermGen space 内存溢出的异常了。 如何解决? 以 tomcat 容器为例。 1 、手动设置 MaxPermSize 的大小, vim ${ TOMCAT_HOME }/bin/catalina.sh ,找到 echo "Using CATALINA_BASE: $CATALINA_BASE"