一尘不染

Tomcat:OutOfMemoryError Permgen空间

tomcat

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

由于我确实向项目添加了Quartz Scheduler Framework和Log4J库,因此Tomcat在重新部署时开始引发此异常。

我已经阅读了有关问题原因的信息,现在我知道必须与类加载器一起使用。

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

我该如何解决这个问题?有另一种方法可以设置记录器,而无需使用log4j.properties文件来确保类加载器正常工作。


阅读 215

收藏
2020-06-16

共1个答案

一尘不染

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

-XX:MaxPermSize=256m

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

2020-06-16