next up previous contents
Nächste Seite: Der Python ZSI Client Aufwärts: Der Python ZSI Server Vorherige Seite: Implementation des MatheService Web-   Inhalt

Die Service Implementation einfügen

Das Einzige was wir nun tun müssen, ist die Implementation des Services in das durch wsdl2dispatch erzeugte Servergerüst einzufügen.
Hierzu sind folgende Schritte notwendig: Wir öffnen zuerst die Datei MatheService_services_server.py: language=Python frame=shadowbox, tabsize=2
\begin{lstlisting}[frame=single, title={MatheService\_services\_server.py}]
...
Wir fügen nun die Funktion getSquare hinzu, die ausgeführt werden soll um das Quadrat einer Zahl zu berechnen: language=Python, frame=shadowbox, tabsize=2
\begin{lstlisting}[frame=single, title={getSquare(..)}]
def getSquare(self, x):
return x**2
\end{lstlisting}
Nun verändern wir die Funktion soap_getSquare(self, ps): language=Python, frame=shadowbox, tabsize=2 ,numbers=left, numberstyle=, numbersep=5pt
\begin{lstlisting}[frame=single, title={soap\_getSquare(self, ps)}]
def soap_ge...
...se()
response._return=self.getSquare(args._x)
return response
\end{lstlisting}
In Zeile 2 args = ps.Parse(getSquareRequest) weisen wir der Variable args ein Array aus dem Request zu. Die Klasse getSquareRequest ist in der Datei MatheService_services.py definiert: language=Python, frame=shadowbox, tabsize=2, numbers=none
\begin{lstlisting}[frame=single, title={MatheService\_services.py}]
.
.
.
cl...
...nse:
def __init__(self):
self._return = None
return
.
.
.
\end{lstlisting}
In Zeile 3 response=getSquareResponse() weisen wir der Variable Response den Typ getSquareResponse() zu.
In Zeile 4 wird nun unsere getSquare Methode aufgerufen. Als Parameter wird ihr der _x Wert der Anfrage ( das '_' ist wichtig!!!) übergeben. Das Ergebnis weisen wir dann der Variable _return unserer Response Variable zu.
Am Ende geben wir die mit einem Wert gefüllte Response Variable zurück.
Wir testen unseren Server nun wieder mit SOAPUI: language=XML frame=shadowbox, tabsize=2
\begin{lstlisting}[frame=single, title={SOAPUI Request}]
<soapenv:Envelope xmlns...
...<x>6</x>
</mat:getSquare>
</soapenv:Body>
</soapenv:Envelope>
\end{lstlisting}
language=XML frame=shadowbox, tabsize=2
\begin{lstlisting}[frame=single, title={SOAPUI Response}]
<SOAP-ENV:Envelope xml...
...</ns1:getSquareResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
\end{lstlisting}
Herzlichen Glückwunsch, unser Server funktioniert!
next up previous contents
Nächste Seite: Der Python ZSI Client Aufwärts: Der Python ZSI Server Vorherige Seite: Implementation des MatheService Web-   Inhalt
Richard Mutschler 2007-03-20