Ne Weile nicht mehr hier gewesen.
Folgende Sachlage....
Ich hatte mir nen RPC Server gebastelt auf ner Linux Kiste gebastelt.
Und dazu um den Server zu testen auch mit Python nen Client.
Der dann eben die Funktionen des Servers aufruft.
Lief auch alles top.
Nun mein Problem.
Ich musste die Linux Kiste neu machen, soll heißen OpenSuse11_2 Neuinstall.
Soooo...nun ist aber auf dem Server (der LinuxKiste mit dem OpenSuse) Python 2.6 vorinstalliert.
Vorher hatte ich den Server in 2.5 programmiert, ebenso den Client, der auf dem Windows Server läuft.
Nun das Problem:
Der Request vom Client zum Server klappt. Also er kommt an.
Es startet die verarbeitung des Requests auf dem Server.
Bis zu dem Punkt, wo ich, zur Kontrolle, ob der Client verbunden ist, auf dem Server nen neuen Thread starte.
In dem thread wird seinerseits ein Client gestartet, also in etwa so:
Code: Alles auswählen
s=xmlrpclib.ServerProxy(addr,TimeOut)
geb ich mir mit print s des ganze aus, steht auch fein die Instanz da...also
Code: Alles auswählen
<ServerProxy for....>
Will ich aber jetzt eine Funktion dort aufrufen also mit
Code: Alles auswählen
$resp=s.test(1)
kommt folgender Fehler:
Code: Alles auswählen
Tracback bla bla
meine Datei...
$resp=s.test(1)
File: usr/lib/python2.6/xmlrpclib.py line 1199 in __call
return.self.__send(self.__name, args)
File: usr/lib/python2.6/xmlrpclib.py line 1485 in __request
response=self.__transport.request(
Attribute Error: 'int' object has no attribute 'request'
Ich verstehe die Fehlermeldung schon, und ich denke ich weiß auch was falsch ist, nämlich:
Dieses
Code: Alles auswählen
__transport
VORHER, also als ich noch mit pyton 2.5 gearbeitet hatte, lief des ganze.
Meine Frage also nun,
hat einer von euch ne Idee, ob sich von 2.5 auf 2.6 beim aufrufen des requests was geändert hat?
Und wie muss des dann richtig heißen?!
Ich hab auch mal zum testen noch ein kleines Skript gebastelt, was von der 2.6er Seite aus nen Request zum Windows 2.5er Python RPC Server senden soll, und des klappt auch nich, mit genau der Fehlermeldung.
Der Request kommt gar nicht erst beim Server an.
Es muss also an einer Änderung im Zuge der Versions-Änderung liegen.....
Aber ich bin mit meinem Latein gerade am Ende....
FAZIT: NEVER change a running system..;o)
Für Antworten danke ich schon mal im Voraus....