развертывание войны на кота с использованием Python - PullRequest
4 голосов
/ 13 мая 2010

Я пытаюсь развернуть войну на сервере Apache Tomcat (сборка 6.0.24), используя python (2.4.2) как часть процесса сборки.

Я использую следующий код

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 «ОК». Однако веб-архив не отображается на странице приложений списка менеджера.

Спасибо.

1 Ответ

2 голосов
/ 13 мая 2010

Хорошо, разобрался.

Строка urllib2.Request должна иметь косую черту перед путем, поэтому: -

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

Все тогда работает нормально.

...