栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在Tomcat上通过JPA,Hibernate和Spring避免Classloader泄漏

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在Tomcat上通过JPA,Hibernate和Spring避免Classloader泄漏

我已经在Tomcat7 + OpenJPA2.4.1 + ValidationAPI1.x + hibernate-validator-5.2.1 +
jboss-logging.jar上看到了相同的webapp内存泄漏

问题确实是jboss-
logging.jar创建了java.util.logging.Level实例的子类。如果J2EE容器提供了jar,则可能不是问题,但mywebapp /
WEB-INF / lib发行版中会发生这种情况。我创建了一个包的分支以禁用子类化。问题消失了,Webapp热部署工作正常。

GC根路径的堆转储指示问题的根源,JDKLevel子类将Web应用程序保留在内存中,并且JVM很快耗尽了PermGen内存。

this     - value: org.apache.catalina.loader.WebappClassLoader #2 <- <classLoader>     - class: org.jboss.logging.JDKLevel, value: org.apache.catalina.loader.WebappClassLoader #2  <- <class>     - class: org.jboss.logging.JDKLevel, value: org.jboss.logging.JDKLevel class JDKLevel   <- levelObject     - class: java.util.logging.Level$KnownLevel, value: org.jboss.logging.JDKLevel #6    <- [1]     - class: java.lang.Object[], value: java.util.logging.Level$KnownLevel #12     <- elementData     - class: java.util.ArrayList, value: java.lang.Object[] #5160 (10 items)      <- value     - class: java.util.HashMap$Entry, value: java.util.ArrayList #3532       <- [0]     - class: java.util.HashMap$Entry[], value: java.util.HashMap$Entry #21639        <- table     - class: java.util.HashMap, value: java.util.HashMap$Entry[] #280 (16 items)         <- intToLevels (sticky class)     - class: java.util.logging.Level$KnownLevel, value: java.util.HashMap #375

编辑 为此错误创建的JBoss
Jira票证(https://issues.jboss.org/browse/JBLOGGING-118)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/466826.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号