Nächste Seite: Den Erweiterten Server erstellen
Aufwärts: Komplexe Datentypen
Vorherige Seite: Komplexe Datentypen
Inhalt
Zuerst sollte in Eclipse ein neuer Ordner im Projekt angelegt und die original WSDL importiert werden. Im ersten Teil dieser Anleitung haben wir eine rpc/literal encoded WSDL verwendet. Nun werden wir document/literal encoding verwenden.
Abbildung 1:
Workespace in Eclipse
![\includegraphics[width=7cm]{Documents/Tutorial/EclipseProjekt.eps}](img12.png) |
Durch die Web Standard Tools können wir uns die WSDL in einer grafischen Darstellung anzeigen lassen.
Abbildung 2:
Design Ansicht der MatheService.wsdl
![\includegraphics[width=15.7cm]{Documents/Tutorial/WSDLDesign1.eps}](img13.png) |
Das Erste was wir ändern, ist die Benamung. Da der Service im ersten Teil nur die Operation zum Berechnen des Quadrates bot, machten Namen wie 'SquareService', 'SquarePort' etc. noch Sinn. Nun ändern wir die Namen durch doppelklicken in 'MatheService', 'MathePort'... . Um mit den ZSI Skripten wsdl2py und wsdl2dispatch Python Bindings für komplexe Datentypen zu erstellen, ist es nötig, dass den ein - und ausgehenden Nachrichten einer Operation ein Element und kein Typ zugewiesen wird. Ein Element wird zugewiesen, indem mit einen rechtsklick auf die Nachricht das Kontextmenü geöffnet wird. Dort wählen wir die Aktion Set Element -New Element. Wir vergeben einen sinnvollen Namen, beispielsweise 'SquareRequest'. Dies führen wir für die ein und die ausgehende Nachricht durch.
Durch einen Rechtsklick auf den PortType erhalten wir ein Kontextmenü, in dem wir Add Operation auswählen. Wir sollten nun folgende Ansicht erhalten:
Abbildung 3:
Design Ansicht mit neuer Operation
![\includegraphics[width=15.7cm]{Documents/Tutorial/WSDLDesign2.eps}](img14.png) |
Zuerst ändern wir die vordefinierten Namen der Operation, der input- und output Messages und weisen ihnen neue Elemente zu. Das Ergebnis sollte folgendermaßen aussehen:
Abbildung 4:
Design Ansicht mit neuer Operation und zugewiesenen Elementen
![\includegraphics[width=15.7cm]{Documents/Tutorial/WSDLDesign3.eps}](img15.png) |
Durch Klicken auf den Pfeil hinter dem Messages öffnet Eclipse die Inline Schema Ansicht der WSDL und wir sehen unseren Typ ModuloRequest:
Abbildung 5:
Element ModuloRequest
![\includegraphics[width=5cm]{Documents/Tutorial/InlineSchema1.eps}](img16.png) |
Über das Kontextmenü führen wir die folgenden Aktionen aus:
- Set Type -»New...
- Complex Type und Create as local anonymous type anwählen
- mit OK bestätigen
Dem jetzt noch leeren Typ fügen wir durch die Aktionen Add Sequence und 2 * Add Element zwei neue Elemente hinzu, ändern die Namen und den Typ der Elemente (auf Wunsch kann hier auch die Multiplizität angegeben werden). Folgende Abbildung zeigt das Ergebnis:
Abbildung 6:
Komplexer Datentyp
![\includegraphics[width=10cm]{Documents/Tutorial/InlineSchema2.eps}](img17.png) |
Wir wechseln nun in Eclipse wieder zur WSDL Ansicht. Im Kontextmenü des Bindings (kleines Rechteck in der Verbindung zwischen Port und PortTyp) wählen wir die Aktion Generate Binding Content.... Im nun erscheinenden Binding Wizzard ändern wir noch den Namen von 'SquareBinding' zu 'MatheBinding', selektieren Overwrite existing binding information und wählen document literal als SOAP Binding Option aus. Wir können uns die WSDL nun durch wechseln des Reiters von 'Design' auf 'Source' ansehen:
language=XML, frame=shadowbox, tabsize=2, numbers=none
Um die WSDL mit SoapUI zu testen, exportieren wir sie in unser Projektverzeichnis und laden sie in SoapUI. Die durch SoapUI generierten Requests sollten folgendermaßen aussehen:
language=XML, frame=shadowbox, tabsize=2, numbers=none
language=XML, frame=shadowbox, tabsize=2, numbers=none
Nächste Seite: Den Erweiterten Server erstellen
Aufwärts: Komplexe Datentypen
Vorherige Seite: Komplexe Datentypen
Inhalt
Richard Mutschler
2007-03-20