2014-11-02 29 views
0

这里是发生了以下错误: -如何定义在eclipse PremGen空间越来越SpringContext初始化失败java.lang.OutOfMemoryError:在运行Java的web应用的PermGen空间

INFO: Initializing Spring root WebApplicationContext 
2014-11-02 23:26:35,690 ERROR org.springframework.web.context.ContextLoader - Context   initialization failed 
java.lang.OutOfMemoryError: PermGen space 
at java.lang.ClassLoader.defineClass1(Native Method) 
at java.lang.ClassLoader.defineClass(Unknown Source) 
at java.security.SecureClassLoader.defineClass(Unknown Source) 
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1850) 
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:890) 
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1354) 
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233) 
at java.lang.ClassLoader.defineClass1(Native Method) 
at java.lang.ClassLoader.defineClass(Unknown Source) 
at java.security.SecureClassLoader.defineClass(Unknown Source) 
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1850) 
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:890) 
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1354) 
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233) 
at org.springframework.util.ClassUtils.forName(ClassUtils.java:211) 
at  org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:385) 
at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1138) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:524) 
at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1177) 
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:222) 
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:505) 
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:362) 
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255) 
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199) 
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45) 
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3934) 
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4429) 
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) 
at org.apache.catalina.core.StandardHost.start(StandardHost.java:722) 
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) 
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) 
at org.apache.catalina.core.StandardService.start(StandardService.java:516) 

有人愿帮我解决这个错误?有没有可能解决这个问题?

回答

0

Tomcat的JVM PermGen空间有限,无法管理运行在其上的所有应用程序,因此当您说重新部署应用程序而没有正确管理permgen时,它将消耗越来越多的应用程序,直到它崩溃,需要重新启动服务器。 T 他的文章解释了如何管理这个问题。

http://www.mkyong.com/tomcat/tomcat-javalangoutofmemoryerror-permgen-space/

当然更强大的服务器/工作站将不会很快看到这个错误,并有更多的空间来使用(关于配置)移动。

例如我的软弱笔记本电脑在10次重新部署后得到了permgen错误,因为我的主服务器可以通过适当的管理和资源可用性进行无限制的操作。