Check the headers to be sure, but I'm pretty sure that a SOAP request is not
GET neither POST, so you don't have a proper handler in your code for that
kind of request.

Giovanni

On Tue, Mar 1, 2011 at 6:05 PM, BullCityRambler <etmil...@gmail.com> wrote:

> Hello,
>
> I'm new to python and web programming.  I'm trying to setup a web
> service and it's giving me fits.  I followed the tutorial, but
> obviously I'm still doing something wrong.
>
> Here's what I'm trying to do:
> 1) the client uploads a file via a jquery widget (this works fine)
> 2) Send a soap request to a python script that processes the uploaded
> file and save the output.
> 3) Make the output available for download via http.
>
> I keep getting a 405, Method Not Allow error.
>
> I'm using the soap <http://plugins.jquery.com/project/soaprequest> and
> uploadify <http://www.uploadify.com/> plugins.  The code looks
> something like this:
>
> $(document).ready(function() {
>        $('#file_upload').uploadify({
>            ...
>          'onComplete': function(event, ID, fileObj, response, data) {
>                $.soapRequest({
>                url:'http://localhost:8080',
>                method:'runspice',
>                params:{filePath:fileObj.name}
>                });
>           }
>
>      });
> });
>
> My python looks almost identical to the tutorial code <http://
> webpy.org/cookbook/webservice>, with these changes:
>
>
> import web
> import download
> from soaplib.wsgi_soap import SimpleWSGISoapApp
> from soaplib.service import soapmethod
> from soaplib.serializers import primitive as soap_types
> from soaplib.client import make_service_client
>
> class SoapService(SimpleWSGISoapApp):
>    """Class for webservice """
>
>    @soapmethod(soap_types.String,_returns=soap_types.String)
>    def runspice(self, filePath):
>        """ Method for webservice"""
>        return download.runSpice(filePath)
>
>
> class RunSpice(SoapService):
>    """Class for web.py """
>    def start_response(self,status, headers):
>        web.ctx.status = status
>        for header, value in headers:
>            web.header(header, value)
>
>
>    def GET(self):
>        response = super(SimpleWSGISoapApp,
> self).__call__(web.ctx.environ, self.start_response)
>        return render("\n".join(response))
>
>
>    def POST(self):
>        response = super(SimpleWSGISoapApp,
> self).__call__(web.ctx.environ, self.start_response)
>        return render("\n".join(response))
>
> app=web.application(urls, globals())
>
> if __name__ == "__main__":
>    app.run()
>
>
> -----------------------------------------------------------
> I'm never getting to the server side processing as I always get the
> 405 error.
>
> Thanks for your help!
>
> Eric
>
> --
> You received this message because you are subscribed to the Google Groups
> "web.py" group.
> To post to this group, send email to webpy@googlegroups.com.
> To unsubscribe from this group, send email to
> webpy+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/webpy?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"web.py" group.
To post to this group, send email to webpy@googlegroups.com.
To unsubscribe from this group, send email to 
webpy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/webpy?hl=en.

Reply via email to