Da der XMLRPC-Dienst so ausgezeichnet läuft bekommt er mittlerweile immer mehr Funktionen dazu. Ich habe deshalb versucht das ganze in verschiedene Module und Klassen aufzuplitten um die Übersicht zu behalten.
Leider habe ich erst jetzt bemerkt dass man mit "register_instance" nur eine Klasse registrieren kann. Nach lange hin und herprobieren habe ich aber trotzdem keine Lösung gefunden.
Gibt es einen Workaround für dieses Problem oder bin ich gezwungen nur mit einer einizgen Klasse zu arbeiten?
bye
Robert
XMLRPC-Dienst mit mehreren Handler-Klassen
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Du könntest z.B. mit vererbten Klassen arbeiten, so dass im Endeffekt wieder nur eine Klasse, die von den anderen Klassen die Methoden geerbt hat an den XMLRPC-Server übergeben wird.
server.py:
client.py:
mfg
Gerold
server.py:
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-
from SimpleXMLRPCServer import SimpleXMLRPCServer
class XmlrpcHandler1(object):
def get_hallo(self):
return "Hallo"
class XmlrpcHandler2(object):
def get_welt(self):
return "Welt"
class XmlrpcHandlerAll(XmlrpcHandler1, XmlrpcHandler2):
pass
server = SimpleXMLRPCServer(("localhost", 50505))
server.register_instance(XmlrpcHandlerAll())
print "Der XMLRPC-Server horcht auf http://localhost:50505."
print "Er kann mit STRG+C oder STRG+Pause beendet werden."
server.serve_forever()
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-
import socket
socket.setdefaulttimeout(3) # Timeout auf 3 sec. setzen
import xmlrpclib
server = xmlrpclib.ServerProxy("http://localhost:50505")
print server.get_hallo(),
print server.get_welt()
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Das funktioniert perfekt!! Danke für die Hilfe.
Python rocks!!
Python rocks!!