Java Tomee Jaxrs 1.7.1+;Mojarra 2.29内存泄漏

Java Tomee Jaxrs 1.7.1+;Mojarra 2.29内存泄漏,java,jakarta-ee,primefaces,memory-leaks,apache-tomee,Java,Jakarta Ee,Primefaces,Memory Leaks,Apache Tomee,我正在使用Tomee、PrimeFaces5.0和ApacheShiro 当我启动服务器时,它会消耗600 Mb的内存。 如果打开和关闭某个页面,该页面包含大量信息,但与ViewScoped bean相关,那么内存使用量将达到1,6 GiB。如果我打开其他东西,甚至是requestscoppedbeans,也会发生同样的事情。 我已经检查并调用了PreDestroy方法,所以我的问题不是它 使用Eclipse内存分析器: 加载的“org.apache.openejb.core.WebContex

我正在使用Tomee、PrimeFaces5.0和ApacheShiro

当我启动服务器时,它会消耗600 Mb的内存。 如果打开和关闭某个页面,该页面包含大量信息,但与ViewScoped bean相关,那么内存使用量将达到1,6 GiB。如果我打开其他东西,甚至是requestscoppedbeans,也会发生同样的事情。 我已经检查并调用了PreDestroy方法,所以我的问题不是它

使用Eclipse内存分析器:

加载的“org.apache.openejb.core.WebContext”的一个实例 “org.apache.catalina.loader.StandardClassLoader@0xa34f0cf0”占据 1189717200(97.83%)字节。记忆是一次积累 加载的“java.util.concurrent.ConcurrentHashMap$Segment[]”实例 通过“系统类加载器”

关键词 java.util.concurrent.ConcurrentHashMap$段[] org.apache.openejb.core.WebContext org.apache.catalina.loader.StandardClassLoader@0xa34f0cf0

当我运行shutdown.sh时,catalina.out中有以下内容

org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks严重:web应用程序[/projeto bim] 创建了具有类型为的键的ThreadLocal [org.apache.shiro.util.ThreadContext.InheritableThreadLocalMap](值 [org.apache.shiro.util.ThreadContext]$InheritableThreadLocalMap@5720d785]) 和类型为[java.util.HashMap](value)的值 [{org.apache.shiro.util.ThreadContext\u SECURITY\u MANAGER\u KEY=org.apache.shiro.web.mgt。DefaultWebSecurityManager@2d258973, org.apache.shiro.util.ThreadContext\u SUBJECT\u KEY=org.apache.shiro.web.SUBJECT.support。WebDelegatingSubject@7b62f42c}])但在web应用程序停止时无法删除它。线程 会随着时间的推移而更新,以避免可能的记忆 泄漏

我尝试了几件事,比如在web.xml中设置一些配置以只维护一个会话,或者将Tomee设置为将会话信息保存在磁盘上,但都不起作用

我该怎么办

//新资料: 内存达到1.6gib并停止,因为这是我的最大堆空间。web服务器开始抛出OutOfMemoryError。我将尝试增加这个,看看它使用了多少

嗯。现在,我将java堆空间增加到3GB。我的应用程序使用了这一切。这显然是内存泄漏,因为每次我打开包含大量信息的特定页面时,内存都会增加300 Mb,而且从不减少!
我该怎么办?

我看不出有多少东西与泄漏有关

WebContext已绑定到TomEE中的webapp(在应用程序运行时,您通常会看到它)


然后所有的警告都是ApacheShiro在您的webapp中,并使用threadlocal按线程保存安全上下文。由于它是由webapp加载的,因此可能会造成泄漏,但除了修补shiro之外,你也无能为力。

那么Eclipse内存分析器的报告只是一个误报?像这样的web应用程序消耗超过2G的内存是正常的吗?不,不,我说的是,您原始帖子的数据无助于诊断您看到的泄漏。