Deploying tomcat war using python

I am trying to deploy a war on an Apache Tomcat server (Build 6.0.24) using python (2.4.2) as part of the build process.

I am using the following code

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 is 200, and url.msg is OK. However, the web archive does not appear on the manager list page.

Thanks.

+4
source share
1 answer

Ok, got it.

The string urllib2.Request must have a slash in front of the track so that: -

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

Everything works perfectly.

+2
source

Source: https://habr.com/ru/post/1309638/


All Articles