From: Rich S. <rs...@zo...> - 2001-11-28 19:10:58
|
Recent changes to client.py to support dynamic rpc seemed to have broken RPC-style messages. I'm pressed for time and short on details, but : def Receive(self, replytype, **kw): '''Parse message, create Python object. if replytype is None, use TC.Any to dynamically parse; otherwise it can be a Python class or the typecode to use in parsing. ''' self.ReceiveSOAP(**kw) if self.ps.IsAFault(): msg = FaultFromFaultMessage(self.ps) raise TypeError("Unexpected SOAP fault: " + msg.string) if replytype == None: tc = TC.Any() # added these 3 lines from below. data = _child_elements(self.ps.body_root) if len(data) == 0: return None return tc.parse(data[0], self.ps) elif hasattr(replytype, 'typecode'): tc = replytype.typecode else: tc = replytype return self.ps.Parse(tc) #data = _child_elements(self.ps.body_root) #if len(data) == 0: return None #return tc.parse(data[0], self.ps) This seems like a hack -- if you have no typecode, descend an extra level. comments? is it just that for interop you have to do gross things? /r$ |