In SoapDispatcher, if you do not define a location, it doesn't work. This is
problematic in particular when binding to several IPs (or even, if you don't
know or want to know the actual IP of the server).
Solution:
In SoapDispatcher:
def updateForIP(self, ip):
self.location = "http://%s:%s/" % (ip, self.port)
self.action = 'http://%s:%s/' % (ip, self.port)
self.namespace = "http://%s:%s/sample.wsdl" % (ip, self.port)
In SOAPHandler.do_GET, add this line as the first one:
self.server.dispatcher.updateForIP(self.headers["Host"].split(":")[0])
This way, anyone who requests the WS, will get the location set to wherever the
dispatcher is running.
Original issue reported on code.google.com by ismael...@gmail.com on 18 Sep 2012 at 10:26
Original issue reported on code.google.com by
ismael...@gmail.com
on 18 Sep 2012 at 10:26