java.lang.OutOfMemoryError:Perm Gen Space..again

时间:2012-12-07 15:56:05

标签: spring jsp out-of-memory weblogic11g permgen

在编译我的JSP时,我按照几个很棒的帖子处理这个错误的指示,它似乎消失了 - 一段时间了,但现在又回来了,复仇:( 首先是'规格':

  • Spring 3.1.0发布
  • 使用WebLogic Server 10.3.5,
  • 将STS.ini文件调整为如下所示:

    -Dosgi.requiredJavaVersion=1.5
    -Xmn28m
    -Xms120m
    -Xmx2048m
    -Xss1m
    -XX:PermSize=256m
    -XX:MaxPermSize=512m
    

这是我在尝试查看我的页面时收到的错误:

java.lang.OutOfMemoryError: PermGen space
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:630)
at java.lang.ClassLoader.defineClass(ClassLoader.java:614)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:305)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:246)
at com.bea.core.repackaged.jdt.internal.compiler.ClassFile.<init>(ClassFile.java:256)
at com.bea.core.repackaged.jdt.internal.compiler.ClassFilePool.acquire(ClassFilePool.java:34)
at com.bea.core.repackaged.jdt.internal.compiler.ClassFile.getNewInstance(ClassFile.java:229)
at com.bea.core.repackaged.jdt.internal.compiler.ast.TypeDeclaration.generateCode(TypeDeclaration.java:512)
at com.bea.core.repackaged.jdt.internal.compiler.ast.TypeDeclaration.generateCode(TypeDeclaration.java:611)
at com.bea.core.repackaged.jdt.internal.compiler.ast.CompilationUnitDeclaration.generateCode(CompilationUnitDeclaration.java:358)
at com.bea.core.repackaged.jdt.internal.compiler.Compiler.process(Compiler.java:770)
at com.bea.core.repackaged.jdt.internal.compiler.Compiler.compile(Compiler.java:464)
at weblogic.jsp.internal.java.JDTJavaCompiler.generateByteCode(JDTJavaCompiler.java:104)
at weblogic.jsp.internal.java.JavaSourceFile._codeGen(JavaSourceFile.java:211)
at weblogic.jsp.internal.java.JavaSourceFile.codeGen(JavaSourceFile.java:201)
at weblogic.jsp.internal.ProxySourceFile.compileGeneratedFiles(ProxySourceFile.java:310)
at weblogic.jsp.internal.ProxySourceFile.codeGen(ProxySourceFile.java:248)
at weblogic.jsp.internal.SourceFile.codeGen(SourceFile.java:327)
at weblogic.jsp.internal.client.ClientUtilsImpl$CodeGenJob.run(ClientUtilsImpl.java:599)
at weblogic.jsp.internal.client.Job.performJob(Job.java:83)
at weblogic.jsp.internal.client.ThreadPool$WorkerThread.run(ThreadPool.java:217)

在调整默认的PermSize之后一周前错误消失了(不记得它被设置为什么)......还有什么我应该在这里寻找的吗?

1 个答案:

答案 0 :(得分:1)

接下来回答George D的回答:对于weblogic,对JVM args的任何更改都应放在$ DOMAIN_HOME / bin / setDomainEnv.sh中(这适用于Linux,应该是Windows的类似路径)。