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