1

是否可以从服务器以编程方式取消部署 Web 应用程序(特别是 WAR)。如果答案是肯定的,就是为不同的服务器取消部署不同的方式。

我正在专门寻找从以下服务器取消部署

  • 雄猫
  • 老板
  • 码头
  • 玻璃鱼
  • 网络球
  • 网络逻辑
  • 杰罗尼莫
  • 树脂
  • 乔纳斯

我知道如果不同服务器的取消部署方式不同,这可能是一个很长的答案。在这种情况下,我非常乐意获得一些通用解决方案或有关此信息的指针

4

2 回答 2

2

桑迪普,

我不知道一个 Web 应用程序取消部署另一个 Web 应用程序的标准容器内方式。我的直觉是应用程序本身是“包含”的,规范并不打算让他们管理他们的容器。

也就是说,大多数/所有这些 Web 容器都提供了用于部署和取消部署 Web 应用程序的 API。虽然这些方法并不常见,当我的开发同事为我们的uDeploy产品创建新的集成时,我们必须依次研究每一个。例如,对于 Tomcat,您可以使用 Tomcat 管理器 API。您可以使用开源 Apache Ant 任务作为您想要执行的操作的示例:http: //tomcat.apache.org/tomcat-5.5-doc/manager-howto.html#Executing_Manager_Commands_With_Ant

对于 Websphere,您可能正在编写 jython 脚本或针对 JMX API 进行一些自己的编程。Weblogic 介于两者之间,因为它提供了一些可以借用的好 Ant 脚本以及直接 API。

祝你好运!

于 2012-04-17T13:21:35.547 回答
0

我不确定您所说的“取消部署”究竟是什么意思,但是如果您对 Web 服务器具有 SSH 访问权限,则可以安装 Git 源代码控制管理来“切换”不同版本的 Web 应用程序,而不管有问题的 Web 服务器如何。例如,假设您有两个 Git 分支:1)“生产”和 2)“离线”。生产分支将包含 Web 应用程序的生产版本。“离线”分支可能只包含一个文件,例如 index.html,它告诉用户该站点“停止维护”或您拥有什么。

您可以使用以下命令切换分支:

git checkout production

或者

git checkout offline

并且 git 会自动换出文件系统中的所有文件,而 Web 服务器永远不会知道其中的区别。您可以编写一个 shell 脚本来执行此操作,甚至可以将其分配为 cron 作业,以便在计划的时间发生,如果您愿意的话。

请注意,执行此操作时将终止所有用户会话,因此您需要按计划的时间间隔或在通知用户后执行此操作。

您可以在这里找到使用 git 所需的一切:http: //git-scm.com/

于 2012-04-16T14:20:34.270 回答