【问题标题】:deploying a war to tomcat using python使用python向tomcat部署战争
【发布时间】:2010-05-13 08:32:24
【问题描述】:

我正在尝试使用 python (2.4.2) 作为构建过程的一部分将战争部署到 Apache Tomcat 服务器(构建 6.0.24)。

我正在使用以下代码

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(或任何容器)的部署。它可能会为您节省一些工作:cargo.codehaus.org
  • 有趣的是,它有时必须在 jython 中作为自解压安装程序的一部分运行。这样可以节省很多精力。很好的发现,先生!

标签: python tomcat deployment urllib2


【解决方案1】:

好的,想通了。

urllib2.Request 行需要在路径前面有一个斜杠所以:-

request = urllib2.Request('http://localhost:8080/manager/deploy?path=/war_file', data=war_file_contents)

然后一切正常。

【讨论】:

  • 愿意,但收到“您可以在 2 天内接受您自己的答案的消息”
猜你喜欢
  • 2012-04-14
  • 1970-01-01
  • 2018-08-30
  • 1970-01-01
  • 2012-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-27
相关资源
最近更新 更多