Nächste Seite: Der erweiterte Client
Aufwärts: Komplexe Datentypen
Vorherige Seite: Erweitern der WSDL mit
Inhalt
Wenn wir nun durch die Skripte wsdl2py und wsdl2dispatch die neuen Python Bindings und das Serverskelett erzeugen wollen, müssen wir beim Aufruf der Skripte die Option -e für extended Code generation und bei wsdl2py zusätzlich -b setzen, sonst werden die komplexen Datentypen nicht richtig abgebildet. Die Aufrufe lauten nun also:
- wsdl2py -e -b -f MatheService.wsdl
- wsdl2dispatch -e -f MatheService.wsdl
Wenn ihr hier eine Fehlermeldung erhaltet, empfielt es sich zu prüfen, ob den input und output Messages der Operationen wirklich Elemente und keine Typen zugewiesen wurde und ob der encoding Style auf document/literal gesetzt ist.
Nun importieren wir die erstellten Dateien in Eclipse. Da das Hauptprogramm (MyMatheService.py) aus dem ersten Teil das durch wsdl2dispatch generierte Server Skelett verwendet, können wir es fast identisch übernehmen. Nur die Zeilen:
from MatheService_services_server import SquareService
der Importanweisung
from MatheService_services_server import MatheService und
AsServer(port=8080, services=[SquareService()], RequestHandlerClass=MySOAPRequestHandler)
des Requesthandlers
AsServer(port=8080, services=[MatheService()], RequestHandlerClass=MySOAPRequestHandler)
sind umzubenennen, da wir vorhin den Namen unseres Services geändert haben.
Wenn wir die Datei MatheService_services_types.py öffnen, erkennen wir hier die Klasse, die unseren komplexen Datentyp abbildet:
language=Python, frame=shadowbox, tabsize=2, numbers=none
In der Datei MatheService_services_server.py implementieren wir nun wieder unsere Verarbeitungsmethoden und sorgen dafür, dass sie beim Aufruf die geeigneten Parameter übergeben bekommen:
language=Python, frame=shadowbox, tabsize=2, numbers=none
Wir können nun den Server starten und mit SoapUI testen:
language=XML
frame=shadowbox, tabsize=2
language=XML
frame=shadowbox, tabsize=2
Glückwunsch, der Server funktioniert!
Nächste Seite: Der erweiterte Client
Aufwärts: Komplexe Datentypen
Vorherige Seite: Erweitern der WSDL mit
Inhalt
Richard Mutschler
2007-03-20