[Zope] Help: XMLRPC question
Martijn Pieters
mj@zope.com
Tue, 3 Sep 2002 10:16:01 -0400
On Tue, Sep 03, 2002 at 04:46:24PM +0300, Ruslan Spivak wrote:
[Snipped traceback]
> Fault: (see above)
The traceback isn't very useful, it only shows that an XML-RPC fault was
raised at the XML-RPC server. To diagnose the problem, you'd have to figure
out what the fault is.
> N.B. When I change ext. methods on comp A Zope so that they don't
> return anything it work's OK.
> example(on comp A) - old: Doesn't work
>
> def vadduser(username, domain, password):
> return vpopmail.vadduser(username, domain, password, "", 0)
>
> new: Works
>
> def vadduser(username, domain, password):
> vpopmail.vadduser(username, domain, password, "", 0)
>
>
> But I need get the result codes.
This sound like there sometimes is not an integer return code, and whatever
*is* returned cannot be marshalled into an XML-RPC result.
You'll need to try and catch the XML-RPC Fault on the client side, and
examine its contents (see xmlrpclib.py for what attributes the object will
have); or you'll need to log whatever your wrapped extension library returns
when the fault occurs. Maybe a try - except on the server side with
exception logging would help, with an assert that the return code is indeed
either 0 or 1.
--
Martijn Pieters
| Software Engineer mailto:mj@zope.com
| Zope Corporation http://www.zope.com/
| Creators of Zope http://www.zope.org/
---------------------------------------------