java - 如何在eclipse中定义PremGen空间?获取SpringContext初始化失败java.lang.OutOfMemoryError : PermGen space

标签 java spring tomcat

这是运行 java webapplication 时发生的以下错误:-

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)

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

最佳答案

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

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

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

例如我的弱笔记本电脑在 10 次重新部署后出现 permgen 错误,而由于适当的管理和资源可用性,我的主服务器可以无限执行。

关于java - 如何在eclipse中定义PremGen空间?获取SpringContext初始化失败java.lang.OutOfMemoryError : PermGen space,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26702568/

相关文章:

java - 如何在java中获得最长的可能的键来匹配给定的字符串

java - 在 IntelliJ Idea 中包装方法调用

mysql - 在 REST API Java Spring Boot 中杀死慢速查询

java - Spring 3.2使用交叉参数约束

spring - 使用 spring Controller 和不同的类在 jsp 中渲染数据

java - 在 Android 中处理事件的最佳方式

tomcat - 我如何在 servlet 之间共享 session 状态?

Spring在tomcat上部署war文件不显示页面

docker - Docker无法从主机的SAN读取

java - 无法编写JSON:直接自引用导致循环