ПРЕДПОСЫЛКИ: У меня есть веб-проект, в котором используется JSP. IDE - Eclipse. Конфигурация tomcat: автоматически публикуется при изменении ресурсов, а интервал публикации - «1 секунда».Что делать с tomcat PermGen space
Файл свойств в папке классов, который использовался для сохранения некоторых параметров. Он также может быть динамически модифицирован сервлетом. Операция изменения триггера сохраняется кнопкой сохранения в JSP.
ПРОБЛЕМА: После нескольких операций сохранения Tomcat поставляется с java.lang.OutOfMemoryError: PermGen space
.
LOG MESSAGE
java.lang.OutOfMemoryError: PermGen space
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1815)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:872)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1325)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
at org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:108)
at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:58)
at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:297)
at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:1064)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:261)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4238)
at org.apache.catalina.core.StandardContext.reload(StandardContext.java:3083)
at org.apache.catalina.loader.WebappLoader.backgroundProcess(WebappLoader.java:404)
at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1279)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1571)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1580)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1580)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1560)
at java.lang.Thread.run(Thread.java:662)
Потенциальный дубликат. http://stackoverflow.com/questions/88235/how-to-deal-with-java-lang-outofmemoryerror-permgen-space-error – Phani
Я получаю эту ошибку с Tomcat всякий раз, когда люди повторно развертывают веб-приложение повторно, без перезапуска Tomcat , Из-за утечки, связанной с процессом загрузки классов, пространство permgen становится немного более полным с каждым повторным развертыванием. Увеличение размера перггенса приведет к задержке точки, в которой она закончилась, но на самом деле вам нужно, чтобы Tomcat отскакивал при повторном развертывании webapp. – Jon
Пожалуйста, ознакомьтесь с приведенной ниже статьей, в которой полностью объясняется, как настроить tomcat для увеличения permGen [Tomcat PermGen Space] (http://www.mkyong.com/tomcat/tomcat-javalangoutofmemoryerror-permgen-space/) – Phani