有没有其他方法可以在不使用Java IDE的情况下进行Hotswap?

时间:2013-05-24 10:10:55

标签: java tomcat jvm

应用程序使用java在Tomcat服务器上运行。我不希望每次有Java更改时都停止服务器。构建系统严重依赖Shell Scripts,因此我不能使用任何Java IDE来执行正常的HotSwap。

现在,还有什么我可以热插拔文件吗?

4 个答案:

答案 0 :(得分:2)

为了这个目的,我在几个java项目中使用了JRebel。它可以大大减少重新部署时间。

答案 1 :(得分:1)

一种方法是使用Tomcat管理Web用户界面。您可以使用curl轻松地将命令编写到WebUI。

Tomcat管理操作还有Ant个任务。

参考:

示例:

答案 2 :(得分:1)

如果您正在寻找应用程序的某种优雅更新,您可以查看Tomcat的Parallel deployment。使用该选项,您可以更新应用程序而无需停止当前打开的会话。服务器将在新的应用程序版本上启动新会话,而较旧的版本将不会在旧版本上续订。

答案 3 :(得分:0)

您正在寻找的是开发模式,它允许您在运行时将应用程序与新版本交换。这对于开发而言通常是有用的,而不是在生产中实践,因此它被称为“开发模式”。

请参阅How to Install Apache Tomcat for Development Mode

此问题还有Restart tomcat when a class file is changed?

请参阅Documentation,搜索可重新加载:

  

reloadable
  如果您希望Catalina监视/ WEB-INF / classes /和/ WEB-INF / lib中的类以进行更改,则设置为true;如果检测到更改,则自动重新加载Web应用程序。 此功能在应用程序开发期间非常有用,但它需要大量的运行时开销,不建议在已部署的生产应用程序上使用。这就是为什么此属性的默认设置为false。但是,您可以使用Manager Web应用程序按需触发已部署应用程序的重新加载。