Tomcat:OutOfMemoryError Permgen Space

我正在使用Tomcat 6开发JSP应用程序。

由于我确实将Quartz Scheduler Framework和Log4J库添加到项目中,因此Tomcat在重新部署时开始抛出此exception。

我已经了解了问题的原因,现在我知道必须使用类加载器。

所以,我想问题可能是由自动加载某些类的记录器库引起的。

我该如何处理这个问题? 有一种方法可以在不使用log4j.properties文件的情况下设置记录器,以确保类加载器能够正常工作。

一种方法是通过在下面添加以下JVM参数来增加permgen空间

-XX:MaxPermSize=256m 

但它只会延迟OOM错误。 如果你一次又一次地重新部署,你将再次遇到permgen内存不足。 本文非常清楚地解释了这个原因,我在此不再赘述。 http://frankkieviet.blogspot.com/2006/10/classloader-leaks-dreaded-permgen-space.html 。 抱歉,我没有不同的方法来设置记录器以避免此问题。 在实践中,我总是增加MaxPermSize,然后在部署之前循环服务器。