ich habe ein kleines Problem mit der Antwort meines soaplib-Servers. Ich habe auf dem Server zwei Funktionen addStudent und listStudents:
Code: Alles auswählen
class Student(ClassSerializer):
class types:
name = String
matrikelNummer = String
class AnmeldeServer(SimpleWSGISoapApp):
@soapmethod(Student,_returns=Integer)
def addStudent(self, student):
studentDict[student.name] = student
return 1
@soapmethod(_returns=Array(Student))
def listStudents(self):
students = studentDict().values()
return students
Code: Alles auswählen
client = Client(url, cache=None)
print client.service.listStudents()
Code: Alles auswählen
(StudentArray){
_type = "tns:StudentArray"
Student[] =
(Student){
name = "blubmann"
matrikelNummer = "1234"
},
}
Code: Alles auswählen
(ArrayOfns__Student){
item[] =
(Student){
name = "blubmann"
matrikelNummer = "1234"
},
1.) einen Soap-Client zu schreiben, der auf einen vorhandenen Soap-Server zugreift.
2.) den vorhandenen Soap-Server nachzubauen. Dabei hab ich mich für Python und soaplib entschieden.
Den Client habe ich also schon mithilfe von suds geschrieben. Er kommuniziert auch einwandfrei mit dem (schon vorhandenen) Server. Allerdings kommuniziert er nicht korrekt mit meinem selbstgeschriebenen Server, da die Antwort, die vom Server kommt, von suds offensichtlich anders interpretiert wird (siehe oben). Wie kann ich also meinen Server dazu bewegen, dass er das gleiche liefert, wie der vorhandene Server?
Ich hoffe, ich habe mein Problem nicht zu konfus beschrieben und hoffe, ihr könnt mir helfen...