Hi Lukasz,

I encountered the same issue recently with suds and a .net-generated WSDL, so I 
wrote a patch — works great in production for a few months.
I'm planning to submit it upstream if I can find an example WSDL suds cannot 
parse.

Hope it helps !

Raphaël BARROIS


Attachment: suds-fix-recursive-wsdls.patch
Description: Binary data


On 11 juil. 2012, at 23:56, Lukasz Szybalski wrote:

> 
> 
> On Wed, Jul 11, 2012 at 3:38 PM, Alex <[email protected]> wrote:
> Hi Lukasz,
> 
> 
> I have recently began using rpclib, and as a beginner - I think I will be 
> able to provide some tips that will help you get started.
> 
> 
> First of all, it is not clear from your message what you are trying to do:
> - a client, i.e. connect to an existing server and call its functions, OR
> - a server, i.e. let others connect to your server and call your functions
> 
> 
> I think you want a client; in that case you should use suds:
> https://fedorahosted.org/suds/
> 
> If you want to build a server, then rpclib/spyne is the right tool for the 
> job. You can also give a try to Ladon - it is very friendly with beginners (I 
> managed to set it up and create a server very quickly).
> 
> Eventually I chose rpclib because Burak provided very fast feedback and 
> because rpclib offered some features I needed.
> 
> 
> Using suds is very easy, I attached an example I use myself. It connects to a 
> locally hosted SOAP server; the example assumes that I know the name of the 
> function I want to call, and that I know all of its arguments - which I pass 
> via a dictionary.
> 
> Otherwise, you can also use the factory.create function, which will construct 
> an object for you, and later you just fill in the values, like this:
> 
>       c = Client('http://localhost:7789/?wsdl')
>       a = c.factory.create('ns1:PhysicalPersonDataRequest')
>       a.lastName = u'Samurai'
>       a.firstName = u'Jack'
>       a.birthDate = u'1945-12-31'
>       a.idnp = u'1234567890123'
>       a.icSerial = u'A'
>       a.icNumber = u'12345'
> 
>       result = c.service.RegisterPhysicalPerson(a)
> 
> 
> I hope this helps. 
> 
> 
> Problem with suds is this:
> c = suds.client.Client('http://localhost:7789/?wsdl')
>  RuntimeError: maximum recursion depth exceeded while calling a Python object
> 
> Even if you increase the recursion limit to 10,000 or 100,000 it still fails 
> later with "segmentation fault".
> 
> So rpclib is my only choice here. ZSI (wsdl2py) doesn't have this problem but 
> I can't figure it out, so I was hoping rpclib would work for me, but I need 
> example of client code.
> 
> 1. service = someClientCode(url=h'ttp://example.com/LoginService.svc?wsdl')
> 2. request= 
> RequestObjectforBelowfunction(Username='myuser',Password='mypassword')
> 3. response=service.GetSecurityKey(request)
> 
> 
> 
> Thanks,
> Lucas
> 
> 
> _______________________________________________
> Soap mailing list
> [email protected]
> http://mail.python.org/mailman/listinfo/soap

_______________________________________________
Soap mailing list
[email protected]
http://mail.python.org/mailman/listinfo/soap

Reply via email to