为什么我收到java.lang.OutOfMemoryError:PermGen space error?>

时间:2013-02-19 05:16:31

标签: java glassfish-3

我正在使用java开发一个应用程序,我使用GlassFish Serve 3+作为我的容器,有时当我运行我的应用程序时遇到以下错误,我想知道是什么原因,

type Exception report

message

descriptionThe server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: PWC1243: Filter execution threw an exception
root cause

java.lang.OutOfMemoryError: PermGen space
note The full stack traces of the exception and its root causes are available in the GlassFish Server Open Source Edition 3.1.2.2 logs.

3 个答案:

答案 0 :(得分:0)

java.lang.OutOfMemoryError

  

当Java虚拟机无法分配对象时抛出,因为   内存不足,没有更多的内存可供使用   垃圾收集器。 OutOfMemoryError对象可以由。构造   如果禁用抑制和/或堆栈跟踪,则虚拟机   是不可写的。

使用new关键字检查是否创建了太多对象。要查找的位置是循环,递归方法等。

答案 1 :(得分:0)

在JAVA_OPTS环境变量中设置PermSize [用于为Java JVM分配内存] 如果已设置,请增加MaxPermSize

例如:

JAVA_OPTS =“$ JAVA_OPTS -Xms512m -Xmx1024m -XX:MaxPermSize = 1024m -XX:PermSize = 128m”

有关JAVA_OPTS的更多详细信息,请点击此处

http://www.unidata.ucar.edu/projects/THREDDS/tech/tds4.3/reference/JavaOptsSummary.html

答案 2 :(得分:0)

我知道在NetBeans'默认的glassfish配置,它不会告诉服务器清理其未使用的类。尝试以下解决方案:

Glassfish PermGen out of Memory Errors