我正在运行一个大型Java 7应用程序(由Maven构建),由于PermGen错误,它开始多次崩溃。 在对它进行概要分析(jProfiler)之后,我注意到ClassLoader部分在类型为:org.eclipse.persistence.internal.jaxb的ClassLoader上保持增加的数量。 JaxbClassLoader直到进程被阻塞。 我没有直接使用EclipseLink,但由于其他一些传递依赖性,这个类肯定在类路径中。 1)任何人都可以解释这种越来越多的类loders的行为吗? 2)如何解决这个问题,任何想法如何使用Maven查找其传递依赖的所有模块,将此类添加到类路径中。
谢谢, RONEN
答案 0 :(得分:1)
使用依赖插件(根据此答案https://stackoverflow.com/a/6110881/116509)查看需要它的内容。
但这不会解决您的问题,因为您可能无法将其从类路径中删除。我试着谷歌搜索JAXB内存泄漏(例如,请参阅此答案https://stackoverflow.com/a/3285931/116509)
您也可以尝试在取消PermGen的Java 8 JVM上运行您的应用程序(但请参阅下面的digitaljoel评论),但修复漏洞会更好。