我正在寻找自动更新tomcat服务器上安装的应用程序的解决方案。
我编码的应用程序应该在公共服务器上有更新版本时自行更新。 重要的是要说客户端将war文件安装在自己的服务器上。
如果不要求客户端创建一个由cron任务调用的程序来更新war文件(如果需要),我怎么能这样做呢?
目标是所有客户端都使用相同版本的应用程序。
答案 0 :(得分:1)
如果已经安装了manager
应用程序,您可以在应用程序中执行此操作。只需编写一个定期过程(例如Quartz,或用Java编写自己的穷人的cron),将中央服务器用于更新。
如果您的更新服务器足够智能,您应该能够只使用HTTP GET
标头发出If-Modified-Since
请求,这样您就可以获得304 Not Modified
响应或您将获得带有更新的WAR文件的200 OK
。如果你得到304,什么都不做。
如果找到更新,请下载更新的WAR文件(内存或流式传输),同时连接到manager
应用程序deploy the new version。
答案 1 :(得分:0)
在我看来,你可以有一个守护程序线程[java程序将成为应用程序的一部分]运行以检查来自repo的更新版本。一旦可用,线程程序就可以获取最新版本。然后通过覆盖现有应用程序来安装最新的应用程序。重新加载应用程序上下文。