BACKGROUND: Ho un progetto Web che utilizza JSP. L'IDE è Eclipse. La configurazione di tomcat è: Pubblica automaticamente quando le risorse cambiano e l'intervallo di pubblicazione è "1 secondo".Cosa fare con spazio PermGen tomcat
Un file di proprietà nella cartella delle classi che ha usato per salvare alcune impostazioni. Può anche essere modificato dinamicamente dal servlet. L'operazione di modifica è attivata dal pulsante di salvataggio nel JSP.
PROBLEMA: dopo diverse operazioni di salvataggio, Tomcat viene fornito con java.lang.OutOfMemoryError: PermGen space
.
log dei messaggi
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)
duplicato potenziale. http://stackoverflow.com/questions/88235/how-to-deal-with-java-lang-outofmemoryerror-permgen-space-error – Phani
Ottengo questo errore con Tomcat ogni volta che le persone ridistribuiscono un'applicazione Web ripetutamente, senza riavviare Tomcat . A causa di una perdita associata al processo di caricamento classi, lo spazio permgen diventa un po 'più pieno con ogni redeploy. L'aumento delle dimensioni PermGen ritarderà il punto in cui si esaurisce la memoria, ma in realtà, è necessario garantire la Tomcat viene rimbalzata quando si ridistribuisce una webapp. – Jon
Si prega di leggere l'articolo qui sotto che spiega completamente la configurazione di tomcat per aumentare permGen [Tomcat PermGen Space] (http://www.mkyong.com/tomcat/tomcat-javalangoutofmemoryerror-permgen-space/) – Phani