我正在使用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.
答案 0 :(得分:0)
当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配置,它不会告诉服务器清理其未使用的类。尝试以下解决方案: