错误描述
在正常启动 Tomcat 的时候,报出如下错误:
Exception encountered during context initialization -
cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'config' defined in URL [jar:file:/E:/GitSpace/bqpt/bqpt-portal/target/bqpt-portal/WEB-INF/lib/bqpt-controller-0.0.1-SNAPSHOT.jar!/com/cpic/template/Config.class]:
Instantiation of bean failed;
nested exception is java.lang.OutOfMemoryError: PermGen space
错误原因
通过观察上面的错误描述,我们可以知道错误原因:
java.lang.OutOfMemoryError: PermGen space
此错误,为内存溢出错误。更具体的说,是指方法区(永久代)内存溢出!
解决方法
由于 JDK 自带的虚拟机为 HotSpot,且其支持内存区域的动态扩展,因此可以通过设置虚拟机参数来扩展方法区的内存大小。例如,进入Run/Debug Configuration页面,修改虚拟机参数为:
-Xms1024M -Xmx2048M -XX:PermSize=128M -XX:MaxPermSize=256M
具体如何配置,如下图所示:

其中,各个参数的含义为:
-Xms,表示程序启动时,JVM 堆的初始化最小尺寸参数;
-Xmx,表示程序启动时,JVM 堆的初始化最大尺寸参数;
-XX:PermSize,表示程序启动时,JVM 方法区的初始化最小尺寸参数;
-XX:MaxPermSize,表示程序启动时,JVM 方法区的初始化最大尺寸参数。
对于本例中的错误,实际上,只需要扩展方法区的虚拟机参数即可。
————————————————
网友评论