错误现象,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,是否发现之前的错误飞了。
good luck~~~