在 Tomcat/Glassfish/JBoss/etc 中重新部署应用程序时,很容易通过保留对先前类加载器实例的引用而导致类加载器泄漏。 Jevgeni Kabanov 在这里讨论了这个问题...
http://www.zeroturnaround.com/blog/reloading-objects-classes-classloaders/
有没有人找到一种利用自动化测试(即:通过 junit)来测试重新部署 Web 应用程序不会导致内存泄漏的好方法?我一直在想,使用嵌入式 Jetty 是否可以轻松编写一个 junit 测试,一遍又一遍地重新部署您的应用程序。
最佳答案
我会考虑看一下 Jetty 实例的自定义类加载器,它有一个终结器,告诉你它正在被垃圾收集,然后明确地 - 通过 visualvm 左右 - 告诉 HotSpot 进行垃圾收集,这样终结器就会如果没有泄漏就运行。
关于java - 测试重新部署 Web 应用程序时是否存在内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3719792/