您的位置:首页 > 编程语言 > Java开发

weblogic java.lang.OutOfMemoryError PermGen space及其解决方法

2012-09-06 09:07 585 查看
错误现象,eclipse插件配置weblogic9.2,启动后进入 console控制台发布程序时,后台报错,出现类型如下错误

<2008-8-28 下午04时02分47秒 CST> <Error> <netuix> <BEA-423143> <A javax.servlet.ServletException occurred while rendering JSP /framework/skeletons/default/gridlayout.jsp, for control com.bea.netuix.servlets.controls.layout.GridLayout indicating the exception
most likely originated in the JSP page. The error was: javax.servlet.ServletException: PermGen space The underlying cause was: java.lang.OutOfMemoryError: PermGen space

java.lang.OutOfMemoryError: PermGen space
注意上表中红色标记部分,内存溢出。

我的笔记本有2、3G怎么还会内存溢出呢?不是说你笔记本的内存不够用,是指超过了jvm默认的大小(4M)那么就会产生此错误信息了。

解释一下(网上看的):PermGen space的全称是Permanent Generation space,是指内存的永久保存区域, 这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中, 它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对 PermGen space进行清理,所以如果你的应用中有很多CLASS的话,就很可能出现PermGen space错误,
这种错误常见在web服务器对JSP进行pre compile的时候。

解决的办法:

Eclipse –preferences-weblogic的javaVM option点add按钮,增加一行:

-XX:MaxPermSize=128m(这个是按照内存1G配置,如果你的内存足够大,你可以设置大于128)

有人说需要修改.sh文件,其实我觉得不必要,直接在eclipse的weblogic插件下修改,显得更为方便。

重新启动weblogic,是否发现之前的错误飞了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: