간단한 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 라이브러리 기반의 DLL을 사용하고 있습니다. 그리고 난 정말이 DLL의 코드를 변경하고 싶지 않아 ... – Adam