Looking at the soaplib source, it looks like it required requests to be made using POST. If you're loading this in a web browser to test, then you're making a GET request. Try making a POST request (using something like Fiddler) instead.
https://github.com/soaplib/soaplib/blob/master/src/soaplib/core/server/wsgi.py (line 84/85) _Nik On 7/3/2012 12:20 PM, Jeff Silverman wrote: > http://djangosnippets.org/snippets/2638/ > > On Jul 3, 2:56 pm, Nikolas Stevenson-Molnar <nik.mol...@consbio.org> > wrote: >> Would you please provide a reference to the snippet or to your complete >> code? It's hard to understand what's going on from this small bit. >> >> _Nik >> >> On 7/3/2012 11:33 AM, Jeff Silverman wrote: >> >> >> >>> Thanks for the reply. Removing that did not change the result. Just >>> an FYI, but I copied the code verbatim from the snippet. that's why I >>> cannot understand what's going on. I continually get the 405 method >>> not allowed error regardless. >>> On Jul 3, 1:28 pm, Nikolas Stevenson-Molnar <nik.mol...@consbio.org> >>> wrote: >>>> I'm not sure that this is the problem, but typically constructors should >>>> not have a return value. Try removing the "return" from your >>>> DjangoSoapApp constructor. >>>> _Nik >>>> On 7/3/2012 6:32 AM, Jeff Silverman wrote: >>>>> Below is the code from the views.py >>>>> The 405 is retunred from the 'return super(DjangoSoapApp, >>>>> self).__init__(Application(services, tns))' statement. I am using >>>>> python 2.6, soaplib20 and django 1.3. I am struggling to understand >>>>> what exactly is wrong here. >>>>> class HelloWorldService(DefinitionBase): >>>>> @soap(String,Integer,_returns=Array(String)) >>>>> def say_smello(self,name,times): >>>>> results = [] >>>>> for i in range(0,times): >>>>> results.append('Hello, %s'%name) >>>>> return results >>>>> class DjangoSoapApp(WSGIApplication): >>>>> csrf_exempt = True >>>>> def __init__(self, services, tns): >>>>> """Create Django view for given SOAP soaplib services and >>>>> tns""" >>>>> return super(DjangoSoapApp, >>>>> self).__init__(Application(services, tns)) >>>>> def __call__(self, request): >>>>> django_response = HttpResponse() >>>>> def start_response(status, headers): >>>>> django_response.status_code = int(status.split(' ', 1)[0]) >>>>> for header, value in headers: >>>>> django_response[header] = value >>>>> response = super(DjangoSoapApp, self).__call__(request.META, >>>>> start_response) >>>>> django_response.content = '\n'.join(response) >>>>> return django_response >>>>> # the view to use in urls.py >>>>> hello_world_service = DjangoSoapApp([HelloWorldService], '__name__')- >>>>> Hide quoted text - >>>> - Show quoted text -- Hide quoted text - >> - Show quoted text - -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.