gpt4 book ai didi

java - 部署时 PermGen 错误 Tomcat8/Spring Data/Hibernate

转载 作者:行者123 更新时间:2023-11-28 22:01:46 24 4
gpt4 key购买 nike

使用 Tomcat8/Spring MVC/Spring Date/Hibernate 的 webapp,每隔几次部署到服务器甚至保存在 java 开发环境中都会导致以下错误。有人知道我该如何避免或解决这个问题吗?我曾尝试增加 JVM 以获得更多内存,但无济于事。 Spring 是使用 java 配置文件而不是旧的 web.xml 方法设置的

[ContainerBackgroundProcessor[StandardEngine[Catalina]]] 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(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2494)
at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:860)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1302)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167)
at org.springframework.util.ConcurrentReferenceHashMap$EntrySet.iterator(ConcurrentReferenceHashMap.java:794)
at java.util.AbstractMap$1$1.<init>(AbstractMap.java:322)
at java.util.AbstractMap$1.iterator(AbstractMap.java:321)
at org.springframework.beans.CachedIntrospectionResults.clearClassLoader(CachedIntrospectionResults.java:164)
at org.springframework.context.support.AbstractApplicationContext.resetCommonCaches(AbstractApplicationContext.java:881)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:563)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:446)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:328)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4810)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5255)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.StandardContext.reload(StandardContext.java:3831)
at org.apache.catalina.loader.WebappLoader.backgroundProcess(WebappLoader.java:292)
at org.apache.catalina.core.StandardContext.backgroundProcess(StandardContext.java:5616)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1377)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1381)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1381)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1349)
at java.lang.Thread.run(Thread.java:745)
Exception in thread "ContainerBackgroundProcessor[StandardEngine[Catalina]]" java.lang.OutOfMemoryError: PermGen space

最佳答案

我已经看到其他 Tomcat PermGen 问题,所以我会首先尝试使用这些参数来查看它是否足够,然后再增加您的 PermGen 大小。

-XX:+CMSClassUnloadingEnabled 
-XX:+CMSPermGenSweepingEnabled

如果这不起作用,请检查以确保增加 PermGen 而不是堆大小。您可以使用以下 JVM arg 设置 PermGen 大小:-XX:MaxPermSize=256M

关于java - 部署时 PermGen 错误 Tomcat8/Spring Data/Hibernate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37009727/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com