我想開發更新程序應用程序。比方說,我有:
- 運行Tomcat
- 在Tomcat上運行應用程序更新
- 在同一個Tomcat上運行舊版本的應用程序的
我想
- 停止舊的應用程序
- 取消部署舊的應用程序
- 部署應用程序(新版本讓我們假設我有新的應用程序war文件somewere在更新應用resourcess
如何從運行應用程序在Tomcat上部署Web應用程序
是否有可能從其他應用程序做這樣的遠程部署在Tomcat都?
我想開發更新程序應用程序。比方說,我有:
- 運行Tomcat
- 在Tomcat上運行應用程序更新
- 在同一個Tomcat上運行舊版本的應用程序的
我想
- 停止舊的應用程序
- 取消部署舊的應用程序
- 部署應用程序(新版本讓我們假設我有新的應用程序war文件somewere在更新應用resourcess
如何從運行應用程序在Tomcat上部署Web應用程序
是否有可能從其他應用程序做這樣的遠程部署在Tomcat都?
將項目從另一個應用程序部署到Tomcat服務器,你需要:
添加庫到項目「卡塔利娜 - ant.jar文件」,從文件夾中:{} TOMCAT_PATH \ lib中 而在你的項目部署一個戰爭文件,你只需要做:
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();
感謝這個解決方案,我能夠開發項目,可以自動更新我的應用程序。
嗨,我得到「java.lang.NoClassDefFoundError:org/apache/tools/ant/Task」。任何想法 ? – leaf 2017-10-01 16:29:34
是的。有一組工具(以及.jar)隨Tomcat發佈,通常由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後面的其他任何地方調用。
這裏有教程編寫 Ant任務:http://ant.apache.org/manual/tutorial-writing-tasks.html
不太一樣,但它應該給你如何在API的工作的想法。
我看不出爲什麼你不應該能夠從一個servlet中調用這個API,如果你想。
或者,你可以運行在你的Tomcat的manager
servlet和簡單的訪問管理器應用程序,例如Web服務:使用瀏覽器或Wireshark的窺探你的瀏覽器和Tomcat之間的通信,當你部署了應用程序,然後重複即遠程控制manager
。我認爲使用工具jar更簡單。
感謝您的建議,我找到了解決方案。我發佈了另一個答案。 謝謝:) – kospiotr 2010-11-10 12:49:12
如果您使用「項目生命週期」工具,則可以在開發週期中自動化這種取消部署/部署。
這麼說,我想在Maven2和他的 「行家部署」 插件:
之後,您可以將此自動化與連續集成服務器(如Hudson)耦合。
你建議從其他應用程序運行Maven?我想他在這裏說網絡應用程序。 – 2010-07-16 14:27:03
你是對的......在這種情況下,「maven-deploy」源代碼(這是公開的)可以是如何在另一個應用程序中實現這個功能的好例子。 – 2010-07-16 14:58:27
你按照什麼程序進行部署? 你使用tomcat管理器嗎? – 2010-07-16 14:18:27