【发布时间】:2014-07-08 15:20:36
【问题描述】:
我目前正在处理的问题要求将动态 Web 项目中的类更改加载到 JVM,而无需重新启动应用程序。我已经知道 J Rebel,因为我也尝试过使用它(只是没有足够的现金购买它)。所以我实际上坚持为这个项目创建一个自定义类加载器。
我真正的问题在于如何检测类文件中的更改并将更改加载到 JVM 中。因此,如果存在工具或 API,或者如果有人知道如何去做,或者有任何参考链接可以帮助解决这个问题,我将非常感谢。
提前致谢
【问题讨论】:
-
为什么您认为必须构建自己的 ClassLoader?你想达到什么目的?
-
如果您的意思是“热部署 Web 应用程序”,免费容器(Tomcat、Jetty)长期支持它。
-
M 试图用完整的新对象结构、对 html 绑定的更改或任何更改来重新加载整个类。热部署不能实现这个目标,而且它只能在我不感兴趣的调试模式下工作。该应用程序非常庞大,并且已经投入生产,只是试图减少升级的停机时间
-
如果您的目标是最大限度地减少部署停机时间,您首先应该考虑更改您的部署过程并且不要弄乱类加载器。也许你应该考虑蓝绿色部署(参见martinfowler.com/bliki/BlueGreenDeployment.html)。类加载是一个非常复杂的过程,在运行的应用程序中替换它们非常复杂。
-
嗯,真是个好东西。感谢这个想法。格雷戈