最近,我在阅读一本关于Erlang的书籍,它有一个热部署(hot deployment)功能。这种部署可以在不关闭系统的情况下完成。所有现有的请求将由旧版本的代码处理,并且部署后的所有新请求将由新代码提供服务。在这种情况下,两个版本的代码都在运行时一段时间内可用,直到所有旧请求都得到满足。在Java中是否有任何方法可以保留两个版本的JAR文件?是否有任何应用程序/ Web服务器支持此功能?
最近,我在阅读一本关于Erlang的书籍,它有一个热部署(hot deployment)功能。这种部署可以在不关闭系统的情况下完成。所有现有的请求将由旧版本的代码处理,并且部署后的所有新请求将由新代码提供服务。在这种情况下,两个版本的代码都在运行时一段时间内可用,直到所有旧请求都得到满足。在Java中是否有任何方法可以保留两个版本的JAR文件?是否有任何应用程序/ Web服务器支持此功能?
从技术上讲,你可以自己做这件事。虽然我不建议这样做,因为很容易变得复杂。但是,你可以创建一个ClassLoader来加载你的类的新版本,然后确保执行代码知道这个新的ClassLoader。
我建议使用JBoss并重新部署你的jars和wars。对大多数人来说非常简单明了。
无论哪种情况,你都必须确保没有任何内存泄漏问题,否则在几次重新部署之后,你就会耗尽PermGen空间。