2011-06-24 154 views
3

我需要有一个自动安装/更新的Web应用程序在JBoss 6.运行Web应用程序自动安装

我至少需要: *停止服务器 *复制的战争部署目录 *申请数据库更新脚本 *启动服务器

你知道一个工具或开源项目吗?

THX 克里斯托夫

+0

詹金斯这样做。我想知道如何以及如何利用它。他们使用码头。 –

回答

0

有关信息,我们终于实现了我们自己的解决方案。基本上从FTP

  1. 一个作业下载包含Java编写的
  2. 一个解压安装应用程序的ZIP文件,安装程序运行。这个执行SQL更新脚本,然后使用JBoss JMX API部署WAR文件。但是,对于JBoss集群支持,我们必须编写自己的MBean,以便在每个节点上复制WAR文件。
0

大多数Servlet容器必须不停止服务器部署的能力。有些人通过将WAR文件放入由Web服务器轮询的特定目录中(如果配置正确),而其他人则公开“上传”Web API。

JBoss通常使用Tomcat作为它的servlet容器。虽然我不知道您的JBoss版本在使用哪个版本,但Tomcat已经支持在运行的服务器上部署很长时间。 Perhaps the documentation for Tomcat 5.5就足以让你确定你需要做什么改变(如果有的话)。

如果您确实需要停止服务器,Tomcat可以从外部程序中停止服务器(它只需要发送正确的消息);但是,一旦停止,Tomcat不能收到“启动”消息,它将不得不手动启动。

更好的解决方案是通过查看servlet生命周期事件来检测应用程序何时启动,然后在“首次启动”事件时“检查”数据库。如果数据库检测显示数据库与预期版本不匹配,请应用更改。数据库检测显示数据库是最新的,然后开始正常的请求处理。这样就可以将Web应用程序中的代码以易于部署和升级的方式隔离开来,但这意味着需要更多的工作来定制应用程序来封装它自己的数据库维护职责。

如果没有这种技术,您将不得不依靠外部工具完成工作。通常这样的工具需要资源的大量整合(有时跨多台机器)。在这种情况下,通常应用企业作业调度程序或工作流引擎(使用您自己的书面适配器)来解决手头的问题。

+0

感谢您花时间回答。的确,我可以开发我的定制解决方案。我已经考虑过Cargo的容器管理了。 – Christophe

+0

但实际上我是第一次寻找现有的解决方案;-) – Christophe

相关问题