我试图使用python(2.4.2)作为构建过程的一部分将战争部署到Apache Tomcat服务器(构建版本6.0.24)。使用python向tomcat部署战争
我用下面的代码
import urllib2
import base64
war_file_contents = open('war_file.war','rb').read()
username='some_user'
password='some_pwd'
base64string = base64.encodestring('%s:%s' % (username, password))[:-1]
authheader = "Basic %s" % base64string
opener = urllib2.build_opener(urllib2.HTTPHandler)
request = urllib2.Request('http://localhost:8080/manager/deploy?path=war_file', data=war_file_contents)
request.add_header('Content-Type', 'application/octet-stream')
request.add_header("Authorization", authheader)
request.get_method = lambda: 'PUT'
url = opener.open(request)
的url.code是200和url.msg是 “OK”。但是,Web档案不会出现在经理列表应用程序页面上。
谢谢。
出于好奇,你有没有考虑过使用jython,然后使用Cargo库来管理你的部署到Tomcat(或任何容器,就此而言)。它可能为您节省一些工作:http://cargo.codehaus.org/ – whaley 2010-05-13 12:33:07
有趣的是,它将不得不以jython作为自解压安装程序的一部分运行。这样可以节省很多努力。好的发现,先生! – Decado 2010-05-13 13:57:24