我有一个控制台Java应用程序,它可以在远程服务器上运行(nohup java -jar myapp.jar &)。Java守护进程部署
经常(每隔一天)我需要用新的JAR文件替换(每当我修复缺陷时)。
目前我通过使用ssh(WinSCP)连接到服务器来做到这一点。
如何创建一个机制,使用它我可以通过http协议升级应用程序?我可以使用JMX吗?
这一机制应该做以下几件事:
一)停止当前运行的应用程序。
b)将新的JAR文件上传到服务器。
c)启动新的JAR文件。
我有一个控制台Java应用程序,它可以在远程服务器上运行(nohup java -jar myapp.jar &)。Java守护进程部署
经常(每隔一天)我需要用新的JAR文件替换(每当我修复缺陷时)。
目前我通过使用ssh(WinSCP)连接到服务器来做到这一点。
如何创建一个机制,使用它我可以通过http协议升级应用程序?我可以使用JMX吗?
这一机制应该做以下几件事:
一)停止当前运行的应用程序。
b)将新的JAR文件上传到服务器。
c)启动新的JAR文件。
基本上你需要将程序分解成两个部分:
的monitor
分量获取新的jar,停止程序,取代了罐子,重新启动该程序
实际程序,控制台java应用程序
理论上你可以在单个java进程中完成所有这些工作,但是额外的在我看来,复杂性是不值得的。
是的,我知道我可以自己做。但是,如果有现成的解决方案,我想使用它们。不想重新发明轮子:) –
有Java Web Start,但它更适合于交互式应用程序,它只在启动时检查最新版本。 –
在LiveRebel中,对于独立应用程序(即守护进程),there's native support。所以主应用程序运行在与指挥中心通信的看门狗代理上。从命令中心可以管理更新。
服务器运行什么操作系统?您建议的热部署机制听起来像是一个合理的工作量。如果服务器运行的是POSIX操作系统,那么脚本可以更容易地使用sftp文件,然后通过ssh远程运行一些命令以重新启动服务器?您可以将脚本直接合并到您的构建机制中。 – Adamski
服务器正在Ubuntu服务器上运行。 –