线程中的异常“”http-apr-8080“-exec-43”java.lang.OutOfMemoryError:PermGen space error

时间:2015-01-08 05:25:26

标签: java hibernate servlets tomcat7

我在Eclipse中使用hibernate框架(servlet)创建了一个动态Web项目。
第一次运行正常。
但运行它多次,我得到例外

Tomcat v7.0 Server at localhost, jdk1.7.0_17. 
On Win2007 32 bits with 4GB of RAM

2 个答案:

答案 0 :(得分:0)

如果为VM分配了较低的内存,则可能会发生这种情况。增加VM可用的内存(PermGen)。

http://www.genericarticles.com/mediawiki/index.php?title=How_to_increase_tomcat_memory_inside_eclipse

如果在增加内存后仍有问题,请附加一个分析器并检查是否有任何内存泄漏。

Tomcat application Profiler for Eclipse indigo

答案 1 :(得分:0)

我可以想到两个问题,取决于你的意思"运行它多次":

  • 如果是"经过多次部署"你可能遇到了类加载的menmory-leak。 Tomcat 6肯定遇到了一些麻烦,不确定tomcat 7。
  • 如果是"在多次调用之后"在同一部署的应用程序中,这可能是您的应用程序中处理SessionFactory / EntityManagerFactory的错误。根据经验,请确保只在您的生命的整个生命周期中创建一个 SessionFactory / EntityManagerFactory。每次调用只应从现有工厂创建Session / EntityManager