应用程序使用java在Tomcat服务器上运行。我不希望每次有Java更改时都停止服务器。构建系统严重依赖Shell Scripts,因此我不能使用任何Java IDE来执行正常的HotSwap。
现在,还有什么我可以热插拔文件吗?
答案 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应用程序按需触发已部署应用程序的重新加载。