最近,当我们发出球衣请求以及关闭时,jrebel 开始重新加载我们项目中的所有类。这似乎不是每个请求,但如果您在请求之间等待一段时间,几乎可以保证会发生。
它只是遍历项目中的每个类并重新加载它——我不得不碰撞 permgen,因为它已经过去了。
关于检查什么可能已经改变的任何想法会导致这种情况突然发生?
事实证明,问题是我们安装不属于 repo 的 jar 的方式中的一个 maven 问题。它得到了一个奇怪的依赖,导致循环引用,这意味着当任何类更改时,它都会刷新所有这些,从而导致 jrebel 重新加载所有内容。
您是否在请求之前重新编译了整个应用程序类?JRebel 只会拾取和更新那些时间戳被改变的类。
更新类不会自行开始 - 应该触发进程,因此在请求之间等待没有多大意义。除非您有一些守护进程将请求发送到服务。
使用 -Drebel.log=true 启用 JRebel 日志记录并将 jrebel.log 文件发送到支持 - 然后可以对其进行跟踪。