मेरे पास सरल xmlrpc सर्वर कोड है:Xmlrpc सर्वर पर ट्रेसबैक कैसे देखें, क्लाइंट नहीं?
from SimpleXMLRPCServer import SimpleXMLRPCServer
port = 9999
def func():
print 'Hi!'
print x # error!
print 'Bye!'
if __name__ == '__main__':
server = SimpleXMLRPCServer(("localhost", port))
print "Listening on port %s..." % port
server.register_function(func)
server.serve_forever()
नमूना सत्र।
क्लाइंट:
>>> import xmlrpclib
>>> p = xmlrpclib.ServerProxy('http://localhost:9999')
>>> p.func()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python26\lib\xmlrpclib.py", line 1199, in __call__
return self.__send(self.__name, args)
File "C:\Python26\lib\xmlrpclib.py", line 1489, in __request
verbose=self.__verbose
File "C:\Python26\lib\xmlrpclib.py", line 1253, in request
return self._parse_response(h.getfile(), sock)
File "C:\Python26\lib\xmlrpclib.py", line 1392, in _parse_response
return u.close()
File "C:\Python26\lib\xmlrpclib.py", line 838, in close
raise Fault(**self._stack[0])
xmlrpclib.Fault: <Fault 1: "<type 'exceptions.NameError'>:global name 'x' is not defined">
>>>
सर्वर:
Listening on port 9999...
Hi!
localhost - - [11/Jan/2011 16:17:09] "POST /RPC2 HTTP/1.0" 200 -
प्रश्न यह है कि अगर मैं सर्वर पर यह ट्रेस वापस भी प्राप्त कर सकता हूं। मुझे यह जानने की ज़रूरत है कि प्रोसेसिंग क्वेरी के साथ कुछ गलत हो गया है या नहीं। मैं पायथन में लिखे गए क्लाइंट का उपयोग नहीं कर रहा हूं इसलिए मेरे लिए ऊपर की तरह ट्रेसबैक प्राप्त करना मुश्किल है।
आपका प्रश्न वास्तव में भ्रामक है। आप कहते हैं कि आप पाइथन में क्लाइंट का उपयोग नहीं कर रहे हैं, लेकिन आपका क्लाइंट पायथन कोड है। – Falmarri
हां, लेकिन यह सिर्फ उदाहरण है। क्लाइंट के रूप में मैं कुछ डीएलएल का उपयोग कर रहा हूं जो xmlrpc-c लाइब्रेरी पर आधारित है। और मैं वास्तव में इस डीएलएल कोड को बदलना नहीं चाहता ... – Adam