我正在编写一个shell脚本,以使用tomcat管理器自动部署/取消部署。
按照http://tomcat.apache.org/tomcat-6.0-doc/manager- howto.html#Deploy_A_New_Application_Remotely上的说明,我将curl用于部署
curl --anyauth -u username:pwd -d path=/something -d war=file:target/someWar.war https://someurl.com/manager/deploy
我得到的响应是此URL不支持HTTP方法POST。
所以我将卷曲改为-G
curl --anyauth -u username:pwd -G -d path=/something -d war=file:target/someWar.war https://someurl.com/manager/deploy
我收到失败的响应- 无法在上下文路径/某处部署应用程序,并且似乎正在服务器而不是我的机器上本地查找文件。有些插件可以进行远程部署,而无需在文件上添加scp,所以我想知道自己缺少什么。
我目前没有主意(在tomcat Manager配置页面上没有看到其他任何选项)。
这种方法对我在Tomcat 6上有效(请参见Tomcat的jevelopers答案):
curl --upload-file <path to warfile> "http://<tomcat username>:<tomcat password>@<hostname>:<port>/manager/deploy?path=/<context>&update=true"
例:
curl --upload-file target\debug.war "http://tomcat:tomcat@localhost:8088/manager/deploy?path=/debug&update=true"
非常容易。输出是这样的:
OK - Undeployed application at context path /debug OK - Deployed application at context path /debug