以编程方式从服务器部署Web应用程序

时间:2012-04-16 14:00:12

标签: web-applications deployment

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

我特意寻找从以下服务器取消部署

  • Tomcat
  • JBoss
  • Jetty
  • GlassFish
  • Websphere
  • Weblogic
  • Geronimo
  • 树脂
  • 的JOnAS

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

2 个答案:

答案 0 :(得分:2)

和Sandeep,

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

尽管如此,大多数/所有这些Web容器都提供了用于部署和取消部署Web应用程序的API。这些方法并不常见,当我的开发人员为我们的uDeploy产品创建新的集成时,我们必须依次研究每个。{3}}。例如,使用Tomcat,您可以使用Tomcat Manager 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。

祝你好运!

答案 1 :(得分:0)

我不确定“undeploy”究竟是什么意思,但是如果你有对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/