我厌倦了以下恼人的错误,我怎么能解决它?如果我使用Tomcat而不是GlassFish,它会解决问题吗?我在本地运行,如果我在服务器上运行相同的应用程序,它会是一样的吗?
SEVERE: java.lang.OutOfMemoryError: PermGen space
SEVERE: Exception in module org.glassfish.main.core.kernel [228] :
java.lang.OutOfMemoryError: PermGen space
SEVERE: Exception in module org.glassfish.main.core.kernel [228] :
java.lang.RuntimeException: java.lang.OutOfMemoryError: PermGen space
SEVERE: Exception in thread "RMI RenewClean-[10.0.0.12:8686]"
答案 0 :(得分:4)
你有没有尝试增加glassfish的内存?
1)转到"domain.xml
/glassfish/domain/domain1/config
“
寻找<jvm-options>-XX:MaxPermSize=
增加其价值,例如198m or 256m
或甚至更多可能是1024m
。
2)停止玻璃鱼然后重新启动它。
答案 1 :(得分:2)
任何时候重新部署应用程序都需要重新启动服务器以清理其内存,因为我遇到类似Tomcat的问题。
更改内存大小只会延迟问题,但不会阻止它。
此外,需要使用IDE的插件查找应用程序的内存泄漏,例如Profiler用于netbeans或其他可用软件。
此外,正如Shaunak所说,您可以在/glassfish/domain/domain1/config/domain.xml文件中更改烫发内存的大小。
答案 2 :(得分:1)
如果您遇到此错误,在尝试首次部署应用程序时,通过domain.xml配置增加permgen空间可能会有所帮助。
但请注意,您可能会遇到玻璃鱼缺陷导致迭代部署时出现permgen错误。