java.lang.OutOfMemoryError:使用eclipse的tomcat中的PermGen空间 [英] java.lang.OutOfMemoryError: PermGen space in tomcat with eclipse
问题描述
java.lang.OutOfMemoryError:PermGen space
在java.lang.ClassLoader.defineClass1(本机方法)
在java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
在java.lang.ClassLoader.defineClass(ClassLoader.java :616)
在java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
在org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1850)
在org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:890)
在org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1354)
在org.apache。 catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
在java.lang.ClassLoader.defineClass1(本机方法)
在java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
在java.lang.ClassLoader.define Class(ClassLoader.java:616)
在java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
在org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1850)
在org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:890)
在org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1354)
在org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
在org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:265)
在org.hibernate .hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:180)
在org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:134)
在org.hibernate.engine.query .HQLQueryPlan。< init>(HQLQueryPlan.java:101)
在org.hibernate.engine.query.HQLQueryPlan。< init>(HQLQueryPlan.java:80)
在org.hibernate.engine .query.QueryPl aCache.getHQLQueryPlan(QueryPlanCache.java:94)
在org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:156)
在org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java: 135)
在org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1650)
在com.spacerdv.dao.impl.UserDaoImpl.getUserDetails(UserDaoImpl.java:170)
at sun.reflect.NativeMethodAttributeImpl.invoke0
在java.lang.reflect.Method.invoke(Method.java:597)
在org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
在org .springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
尝试提高perm空间,添加以下参数到vm启动
-XX:PermSize = 256m -XX:MaxPermSize = 256m
还将Eclipse中的 -XX:MaxPermSize = 256m 添加到Tomcat中:服务器>打开启动配置>参数
更新(2014年):这里的这个问题和答案关于新的Java 8 Metaspace 。
并看看这里:
如何处理java.lang.OutOfMemoryError:PermGen space错误
i get this exception frequently when running my app on tomcat using eclipse:
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: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.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: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.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:265)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:180)
at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:134)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:101)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:80)
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:94)
at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:156)
at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:135)
at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1650)
at com.spacerdv.dao.impl.UserDaoImpl.getUserDetails(UserDaoImpl.java:170)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
try to raise perm space, add following parameters to vm start-up
-XX:PermSize=256m -XX:MaxPermSize=256m
also add -XX:MaxPermSize=256m to Tomcat in Eclipse: Server > Open Launch Configuration > Arguments
Update (in 2014): take a look here at this question and answer about the new Java 8 Metaspace.
and take a look here:
How to deal with "java.lang.OutOfMemoryError: PermGen space" error
这篇关于java.lang.OutOfMemoryError:使用eclipse的tomcat中的PermGen空间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!