I kind of let this lay around until last night, when I had the happy idea that this would help me with a particular user problem. I have stand-alone SOAP clients using SUDS or Java, but I have a user where installing those clients could be problematic. So I tried as below, but failed.
Note that instead of doing this from a console, I was trying to make this a function within my controller, so that it could be used by clinking a link on a page I'm serving. I have an instance of web2py on an old Fedora, where it has been running happily for nearly a year. The SOAP provider works fine there. In addition, there is a summary page I can browse to. This works from the local browser, but when I try to use the SOAP client code I get connection refused. So I turned to another instance of web2py, running on Centos machine. I can access it just fine via my stand-alone SOAP clients and the summary page, but again I get "connection refused".
(from urlib2.py, line 1165, Errno 111 per the ticket.; HTTP 500 sent to the client machine).
tcpdump on the Centos machine shows it being the access to the function that acts as the SOAP client, and console output indicates that instantiating the client is the problem. I've tried with both the location parameters as shown below, or with the wsdl parameter as in the first example on pysimplesoap, and with and without setting the Authorization header (the servers are on an internal network, and still using Rocket, and so I've turned off authorization on the SOAP provider; the stand-alone clients send the authorization header, but it isn't used). One of the stand-alone clients uses pyssimplesoap.
Any suggestions?
Dave
/dps