我正在使用 Tomcat 6 开发 JSP 应用程序。
由于我确实将 Quartz Scheduler Framework 和 Log4J 库添加到项目中,因此 Tomcat 在重新部署时开始抛出此异常。
我已经阅读了有关问题原因的信息,现在我知道这必须与类加载器有关。
所以,我猜这个问题可能是由自动加载一些类的记录器库引起的。
我该如何处理这个问题?有另一种方法可以在不使用 log4j.properties 文件的情况下设置记录器,以确保类加载器能够正常工作。
我正在使用 Tomcat 6 开发 JSP 应用程序。
由于我确实将 Quartz Scheduler Framework 和 Log4J 库添加到项目中,因此 Tomcat 在重新部署时开始抛出此异常。
我已经阅读了有关问题原因的信息,现在我知道这必须与类加载器有关。
所以,我猜这个问题可能是由自动加载一些类的记录器库引起的。
我该如何处理这个问题?有另一种方法可以在不使用 log4j.properties 文件的情况下设置记录器,以确保类加载器能够正常工作。
一种方法是通过在下面添加以下 JVM 参数来增加您的 permgen 空间
-XX:MaxPermSize=256m
但它只会延迟OOM错误。如果您一次又一次地重新部署,您将再次遇到 permgen 内存不足。原因在这篇文章中解释的很清楚,这里不再赘述。http://frankkieviet.blogspot.com/2006/10/classloader-leaks-dreaded-permgen-space.html。抱歉,我没有其他方法来设置记录器以避免此问题。在实践中,我总是增加 MaxPermSize,然后在部署前循环服务器。