Tomcat 7 Spring 应用 IntelliJ IDEA 10.5 出现 PermGen 空间不足错误

7

不确定谁负责此错误:

Exception in thread "main" java.lang.OutOfMemoryError: PermGen space

当我尝试从IntelliJ IDEA 10.5以Debug模式运行我的Spring Web应用程序时,出现了这个错误(我的项目是基于Maven格式的)。但是当我将相同的应用程序放在独立的Tomcat 7 Web服务器上(将war文件放入webapps文件夹)时,它可以正常工作。同时,从mvn clean install t7:run-forked也可以正常运行该应用程序。
我的应用程序是基于Spring JPA框架编写的,使用Hibernate作为JPA提供程序。连接池采用c3p0(曾经试过使用bonecp,但认为它可能是此错误的原因,并已切换到c3p0,但问题仍然存在)。在Tomcat上使用Spring TomcatInstrumentationLoading支持JPA。
我的操作系统是Debian Linux。
2个回答

27

以下内容应该足够让它正常工作:

-XX:MaxPermSize=256m

VM选项字段被设置在Tomcat运行/调试配置中,以

-XX:MaxPermSize=256m


太棒了!这解决了我的问题。非常感谢。我的问题出现在运行单元测试时,但我能够将相同的概念应用于我的单元测试运行配置中。 - Dan Torrey

5

设置虚拟机参数以为您的程序分配更多空间

例如:

-Xms128m -Xmx8192m -XX:PermSize=128m -XX:MaxPermSize=256m 

5
你应该解释那些论点。前两个论点与PermGen空间无关,而8 GB远超典型开发机器的支持能力。 - JB Nizet

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接