我可以防止每次更改java代码时重新启动应用程序吗?

我可以防止每次更改java代码时重新启动应用程序吗?,java,eclipse,jakarta-ee,websphere,Java,Eclipse,Jakarta Ee,Websphere,使用的ide是:IBM Rational®软件架构师™ 适用于WebSphere®软件 版本:7.5.5.3 使用的应用服务器是Wbesphere 6.1 我发布这个问题是因为我的服务器需要7到8分钟才能启动 因此,即使我做了一个小的更改,我也必须等待10分钟来测试我的应用程序中的更改。因此,有没有一种方法可以在不重新启动服务器的情况下更改java代码并进行测试 感谢您的建议 注: 我不应该在我的环境中使用任何构建工具。有一个名为“让我们在不重新启动服务器的情况下进行更改”的插件。是JRebel

使用的ide是:IBM Rational®软件架构师™ 适用于WebSphere®软件 版本:7.5.5.3

使用的应用服务器是Wbesphere 6.1

我发布这个问题是因为我的服务器需要7到8分钟才能启动

因此,即使我做了一个小的更改,我也必须等待10分钟来测试我的应用程序中的更改。因此,有没有一种方法可以在不重新启动服务器的情况下更改java代码并进行测试

感谢您的建议

注:


我不应该在我的环境中使用任何构建工具。

有一个名为“让我们在不重新启动服务器的情况下进行更改”的插件。

是JRebel的开源替代品,您可以尝试重新加载类。它将完成整个类的重新定义,甚至重新加载对类层次结构所做的更改。

理论上,重新加载类是构建在JVM中的,尽管大多数实现(特别是Oracle的)只会重新加载(热交换),只要您只更改方法体内部的代码

另一个问题是,在Eclipse中,WTP适配器必须协作,并且只部署更改的类定义(增量部署)。出于某种原因,GlassFish一直是增量部署的最大反对者,因此它的WTP适配器即使在做出最微小的更改后也会重新启动服务器

JBoss过去是增量部署的支持者,但在AS 7(“一切都必须不同”)之后,他们现在也是“重启服务器”学派的追随者

还有一个问题是,普通类加载通常只是故事的一部分。在EJB中,JSF、JPA和许多其他框架类也必须由框架重新注册,缓存必须清除,等等

这就是像JRebel这样的东西出现的地方。它几乎可以重新加载对类的所有更改。它还可以独立于WTP适配器工作,从而使您从服务器供应商的奇思妙想中解脱出来,这些奇思妙想包括:今天重启是时髦的,明天重启是跛脚的,还是恰恰相反。JRebel还拥有许多框架的知识和插件

不幸的是,JRebel并不完美,有时事情会失败,但总体来说,它工作得相当好


另一条建议是:大多数现代应用服务器在相对快速的硬件上一秒钟启动,使用一个小应用程序或10秒左右的时间启动一个更大的应用程序。有了这些和会话序列化,您几乎不再需要像JRebel这样的东西了

当您的更改准备就绪时,可能会禁用自动生成和手动生成。我只是按照您所说的做,直到现在JIV.Keppil,谢谢!但我能得到任何开源版本的JRebel吗?不幸的是,我没有任何开源替代品的经验。也许会很有趣?Tomcat在几毫秒后就启动了,但很多开发人员还是将JRebel与Tomcat一起使用。即使它支持会话序列化。为什么?因为应用程序需要一段时间来初始化。