我需要自动安装/更新在JBoss 6上运行的Web应用程序。
我至少需要: *停止服务器 *复制部署目录中的war *应用数据库更新脚本 *启动服务器
你知道一个工具或开源项目吗?
THX 克里斯托夫
答案 0 :(得分:0)
大多数Servlet容器都能够在不停止服务器的情况下进行部署。有些人通过将WAR文件放在由Web服务器轮询的特定目录中(如果配置正确)而其他人公开“上传”Web API。
JBoss通常使用Tomcat作为其servlet容器。虽然我不知道您的JBoss版本使用的是哪个版本,但Tomcat已经支持在正在运行的服务器上部署很长时间。 Perhaps the documentation for Tomcat 5.5足以让您确定需要做出哪些更改(如果有)。
如果您确实需要停止服务器,Tomcat可以从外部程序停止服务器(它只需要发送正确类型的消息);但是,一旦停止,Tomcat就无法收到“启动”消息,它必须手动启动。
更好的解决方案是通过查看servlet生命周期事件来检测应用程序何时启动,然后在“首次启动”事件时“检查”数据库。如果数据库检测显示数据库与预期版本不匹配,请应用更改。数据库检测显示数据库是最新的后,然后开始正常的请求处理。这使得Web应用程序中的代码以允许轻松部署和升级的方式隔离,尽管它确实意味着在定制应用程序以封装其自身的数据库维护职责方面有更多工作。
如果这种技术不是一种选择,您将不得不依靠外部工具来完成工作。通常,这样的工具需要大量集成资源(有时跨多台机器)。在这种情况下,企业作业调度程序或工作流引擎(使用您自己编写的适配器)通常用于解决手头的问题。
答案 1 :(得分:0)
有关信息,我们最终实施了自己的解决方案。基本上