如何在运行应用程序的Tomcat上部署Web应用程序

时间:2010-07-16 14:09:58

标签: java deployment tomcat

我想开发更新程序应用程序。让我们说我有:
- 运行Tomcat
- 在Tomcat上运行Updater应用程序 - 在同一个Tomcat上运行旧版本的应用程序
我想要 - 停止旧的应用程序
- 取消部署旧应用程序
- 部署新版本的应用程序(假设我在Updater app resourcess中有一些新的应用程序战争文件。

是否可以从其他应用程序在Tomcat上进行此类远程部署?

3 个答案:

答案 0 :(得分:3)

要从另一个应用程序将项目部署到Tomcat服务器,您需要:

从文件夹中添加一个库“catalina-ant.jar”:{TOMCAT_PATH} \ lib 在您的项目中部署war文件,您只需执行:


org.apache.catalina.ant.DeployTask task = new org.apache.catalina.ant.DeployTask();
task.setUrl("http://localhost:8084/manager");
task.setUsername("managerLogin");
task.setPassword("managerPassword");
task.setPath("/UrlToYourDeploadingProject");
task.setWar(new File("c:/Project.war").getAbsolutePath());
task.execute();

由于这个解决方案,我能够开发可以自动更新我的应用程序的项目。

答案 1 :(得分:1)

是。有一组与Tomcat一起发布的工具(好吧,一个.jar)通常由ant使用但是任何愿意调用代码的人都可以使用它。有启动和停止应用程序,部署,取消部署,列出应用程序等任务;本质上它是一个包装manager servlet功能的API。

我尝试为你挖出名字或链接的那一刻......

以下是Apache关于这些内容的信息:http://tomcat.apache.org/tomcat-5.5-doc/manager-howto.html#Executing使用Ant的管理器命令

...这里是其他地方的用户,详细描述了他如何使用这些任务:http://raibledesigns.com/wiki/Wiki.jsp?page=TomcatAntTasks

您可能反对您不是ant。这是真的,但是没有什么关于蚂蚁的魔力,它只是在jar中调用代码。该代码可以从API之后的任何其他地方调用。

这是关于编写蚂蚁任务的教程:http://ant.apache.org/manual/tutorial-writing-tasks.html

不完全相同,但它应该让您了解API的工作原理。

如果您愿意,我认为没有理由不能在servlet中调用此API。

或者,您可以在Tomcat中运行manager servlet,只需像Web服务一样访问管理器应用程序:在部署应用程序时,使用浏览器或WireShark来窥探浏览器和Tomcat之间的流量,然后将其复制到远程控制manager。我,我认为使用工具罐更简单。

答案 2 :(得分:0)

如果您使用“项目生命周期”工具,则可以在开发周期中自动化此取消部署/部署。

这么说,我想起了Maven2和他的“maven-deploy”插件:

  • mvn compile:java compilation
  • mvn package:创建war文件(对于webbapp项目)
  • mvn deploy:停止,取消部署旧应用程序,部署并启动新版本!

之后,您可以将此自动化与连续集成服务器(如Hudson)结合使用。

相关问题