每次deploy Struct应用都会带来内存泄露的问题,原因很简单,但解决方案却一直没找到。
问题的原因,部的Struct应用一访问,就会向ThreadLocal加入一些Context信息。而Context相
关类都有WebappClassloader加载。undeploy应用之后,Context相关类因为ThreadLocal的引用
而无法unload,导致WebappClassloader无法unload,最终导致由WebappClassloader加载的所有类
都无法unload,java.lang.OutOfMemoryError: PermGen space出现。
看这个图就比较清楚了:
多几次deploy/undeploy就会出现,有经验的同学请帮出出招。
时间: 2024-09-30 23:58:55