【问题标题】:running grails application in Geronimo在 Geronimo 中运行 grails 应用程序
【发布时间】:2014-07-22 12:31:04
【问题描述】:

我遇到了我的 grails Web 应用程序无法在 geronimo 中启动的问题。 这些是我正在运行的版本 - Grails 1.3.7 版 - Geronimo 2.1.1 版 无论我做什么应用程序都无法以各种异常开始,这些异常主要与 perm-gen 错误相关

我最终得到的一些例外是

09:43:27,733 ERROR [ReloadAwareAutowireCapableBeanFactory] Destroy method on bean with name 'eventTriggeringInterceptor' threw an exception
java.lang.OutOfMemoryError: PermGen space
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
    at org.apache.geronimo.kernel.classloader.JarFileClassLoader.access$200(JarFileClassLoader.java:52)
    at org.apache.geronimo.kernel.classloader.JarFileClassLoader$6.run(JarFileClassLoader.java:308)

我真的需要一些帮助,我不知道下一步该做什么或如何解决。 我用过

set JAVA_OPTS= -Xmx1024m -XX:MaxPermSize=256m in geronimo.bat 

但这也无济于事

【问题讨论】:

    标签: grails geronimo


    【解决方案1】:

    将选项更改为

    set JAVA_OPTS=-verbose:gc -Xmx756m -XX:MaxPermSize=256m
    

    为我做了诀窍。

    【讨论】:

    • 我很困惑,所以你根本没有增加perm gen,只是将垃圾收集输出设置为verbose?那是如何解决问题的?
    • 不,我更改了最大堆,即从 1GB 减少到 756M。由于 OOM 错误来自 PermGen 空间,而不是真正的堆内存。将堆减少到 756 允许更多进程内存可用于本机堆。查看此 SO 以了解有关 PermGen stackoverflow.com/questions/1279449/what-is-perm-space 的详细信息
    猜你喜欢
    • 2010-09-16
    • 2013-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多