使用的ide是:用于WebSphere®Software的IBMRational®SoftwareArchitect™ 版本:7.5.5.3
使用的应用服务器是Wbesphere 6.1。
我发布此问题是因为我的服务器需要大约7到8分钟才能启动。
所以,即使我进行了一些小改动,我也要等待10分钟来测试我的应用程序中的更改。所以有一种方法可以更改我的java代码并测试它们而无需重新启动服务器。
建议赞赏!!!
注意:
我不应该在我的环境中使用任何构建工具。
答案 0 :(得分:6)
有一个名为JRebel的插件可让您在不重新启动服务器的情况下进行更改。
答案 1 :(得分:3)
Dynamic Code Evolution VM是JRebel的开源替代品,您可以尝试重新加载类。它将完成整个类的重新定义,甚至可以重新加载对类层次结构所做的更改。
答案 2 :(得分:1)
理论上重新加载类是构建到JVM中的,尽管大多数实现(特别是Oracle)只重新加载(热交换),只要您只更改方法体内的代码即可。
另一个问题是,在Eclipse中,WTP适配器必须协作并仅部署更改的类定义(增量部署)。 GlassFish由于某种原因一直是增量部署的一个大反对者,因此它的WTP适配器在做出最微小的改变后重新启动服务器。
JBoss曾经是增量部署的支持者,但在AS 7之后(“一切都必须不同”),他们现在也是“重启服务器”学校的追随者。
另一个问题是普通课程加载通常只是故事的一部分。在EJB中,JSF,JPA和许多其他框架类也必须由框架重新注册,缓存必须被清除等等
这就是JRebel之类的东西。它重新加载了几乎所有类的更改。它还独立于WTP适配器工作,从而使您摆脱服务器供应商的一时兴起,如果今天重新启动是明天的,明天就是跛脚,或者恰恰相反。 JRebel还拥有许多框架的知识和插件。
不幸的是,JRebel并不完美,有时候事情会失败,但总的来说它运作得很好。
另一条建议:大多数现代应用程序服务器在相对较快的硬件和较小的应用程序上启动,或者对于较大的应用程序启动大约10秒。通过这些和会话序列化,您几乎不再需要像JRebel这样的东西了。