Hallo Liste, ich "darf" mich derzeit mit SOAP Web Services beschäftigen und benutze Python zur Erstellung einiger Praxisbeispiele. Auf der SOAP-Ebene gibt's da bislang kein Problem, aber nun würde ich gerne ein WSDL-Dokument zu einem der Services generieren. Leider finde ich aber im SOAPpy-Modul nur clientseitige WSDL-Unterstützung. Gibt es auch eine Möglichkeit, Python das WSDL-Dokument automatisch erzeugen zu lassen (und mir einige Handarbeit zu ersparen...)? MfG, Patrick Holz _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
On Friday 10 February 2006 13:07, Patrick Holz wrote:
Hallo Liste,
ich "darf" mich derzeit mit SOAP Web Services beschäftigen und benutze Python zur Erstellung einiger Praxisbeispiele. Auf der SOAP-Ebene gibt's da bislang kein Problem, aber nun würde ich gerne ein WSDL-Dokument zu einem der Services generieren. Leider finde ich aber im SOAPpy-Modul nur clientseitige WSDL-Unterstützung. Gibt es auch eine Möglichkeit, Python das WSDL-Dokument automatisch erzeugen zu lassen (und mir einige Handarbeit zu ersparen...)?
AFAIK nicht - das "Problem" liegt in der Dynamik von python: in JAVA zb kann man mittels Typinformation über eine gegebene Klasse traversieren, und dann eine WSDL daraus erzeugen, da man sowohl Parameter- als auch Ergebnistypen kennt. Sowas geht aber in python nicht... Das einzige was ich mir vorstellen kann - und da weiss ich nicht, obs das so schon gibt - wäre mittels Dekoratoren die Signaturen entsprechender Funktionen zu annotieren, und das dann zur WSDL-generierung heranzuziehen. Alternativ: design dein interface in JAVA (ohne auf die eingebauten Collections zuzugreifen, bzw. du musst die typ-mappings dafür ans laufen kriegen, geben tut's die), und lass dir mittels java2wsdl (axis-toolkit) die WSDL erzeugen. Oder in den sauren Apfel beissen.... immer dran denken: XML ist menschenlesbar.. *hust* Diez _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
Hi, erstmal danke für die Antwort.
AFAIK nicht
Das hatte ich befürchtet...
Alternativ: design dein interface in JAVA
Ich überleg mal kurz... äh, nö. ;)
Oder in den sauren Apfel beissen.... immer dran denken: XML ist menschenlesbar..
Hehe, und die Erde ne Scheibe und der Strom gelb. :) Aber ich habe mich tatsächlich rangetraut und das WSDL-Dokument von Hand geschrieben. Unglaublich, aber es funktioniert - zumindest lokal auf dem Server. Wenn ich das Dokument aber per Apache bereitstelle und über http darauf zugreife, erhalte ich seltsamerweise ne Fehlermeldung: Traceback (most recent call last): File "<stdin>", line 1, in ? File "/usr/local/lib/python2.4/site-packages/SOAPpy/WSDL.py", line 61, in __init__ stream = urllib.urlopen(wsdlsource) File "/usr/local/lib/python2.4/urllib.py", line 77, in urlopen return opener.open(url) File "/usr/local/lib/python2.4/urllib.py", line 185, in open return getattr(self, name)(url) File "/usr/local/lib/python2.4/urllib.py", line 317, in open_http return self.http_error(url, fp, errcode, errmsg, headers) File "/usr/local/lib/python2.4/urllib.py", line 334, in http_error return self.http_error_default(url, fp, errcode, errmsg, headers) File "/usr/local/lib/python2.4/urllib.py", line 574, in http_error_default return addinfourl(fp, headers, "http:" + url) File "/usr/local/lib/python2.4/urllib.py", line 863, in __init__ addbase.__init__(self, fp) File "/usr/local/lib/python2.4/urllib.py", line 813, in __init__ self.read = self.fp.read AttributeError: 'NoneType' object has no attribute 'read' Ist es mal wieder ein Kodierungsproblem? Fehlt mir ein Modul (habe SOAPpy und urllib importiert)? Per Webbrowser sieht der WSDL-File korrekt aus. MfG, Patrick Holz -- Dipl.-Wirt.-Inf. Patrick Holz Zentrum für angewandte Informatik Köln (ZAIK) Mail: patrick.holz@uni-koeln.de Tel.: 49-(0)221-478-7002 URL: http://www.uni-koeln.de/rrzk/Autoren/HL Skype: Holyfive Diez B. Roggisch wrote:
On Friday 10 February 2006 13:07, Patrick Holz wrote:
Hallo Liste,
ich "darf" mich derzeit mit SOAP Web Services beschäftigen und benutze Python zur Erstellung einiger Praxisbeispiele. Auf der SOAP-Ebene gibt's da bislang kein Problem, aber nun würde ich gerne ein WSDL-Dokument zu einem der Services generieren. Leider finde ich aber im SOAPpy-Modul nur clientseitige WSDL-Unterstützung. Gibt es auch eine Möglichkeit, Python das WSDL-Dokument automatisch erzeugen zu lassen (und mir einige Handarbeit zu ersparen...)?
AFAIK nicht - das "Problem" liegt in der Dynamik von python: in JAVA zb kann man mittels Typinformation über eine gegebene Klasse traversieren, und dann eine WSDL daraus erzeugen, da man sowohl Parameter- als auch Ergebnistypen kennt. Sowas geht aber in python nicht...
Das einzige was ich mir vorstellen kann - und da weiss ich nicht, obs das so schon gibt - wäre mittels Dekoratoren die Signaturen entsprechender Funktionen zu annotieren, und das dann zur WSDL-generierung heranzuziehen.
Alternativ: design dein interface in JAVA (ohne auf die eingebauten Collections zuzugreifen, bzw. du musst die typ-mappings dafür ans laufen kriegen, geben tut's die), und lass dir mittels java2wsdl (axis-toolkit) die WSDL erzeugen.
Oder in den sauren Apfel beissen.... immer dran denken: XML ist menschenlesbar.. *hust*
Diez
_______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
_______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
Hallo nochmal, ich ziehe die Frage zurück, das war wohl ein Routing-Problem im Subnetz. Jetzt klappt's wie gewünscht. MfG, Patrick Holz -- Dipl.-Wirt.-Inf. Patrick Holz Zentrum für angewandte Informatik Köln (ZAIK) Mail: patrick.holz@uni-koeln.de Tel.: 49-(0)221-478-7002 URL: http://www.uni-koeln.de/rrzk/Autoren/HL Skype: Holyfive Patrick Holz wrote:
Hi,
erstmal danke für die Antwort.
AFAIK nicht
Das hatte ich befürchtet...
Alternativ: design dein interface in JAVA
Ich überleg mal kurz... äh, nö. ;)
Oder in den sauren Apfel beissen.... immer dran denken: XML ist menschenlesbar..
Hehe, und die Erde ne Scheibe und der Strom gelb. :) Aber ich habe mich tatsächlich rangetraut und das WSDL-Dokument von Hand geschrieben. Unglaublich, aber es funktioniert - zumindest lokal auf dem Server. Wenn ich das Dokument aber per Apache bereitstelle und über http darauf zugreife, erhalte ich seltsamerweise ne Fehlermeldung:
Traceback (most recent call last): File "<stdin>", line 1, in ? File "/usr/local/lib/python2.4/site-packages/SOAPpy/WSDL.py", line 61, in __init__ stream = urllib.urlopen(wsdlsource) File "/usr/local/lib/python2.4/urllib.py", line 77, in urlopen return opener.open(url) File "/usr/local/lib/python2.4/urllib.py", line 185, in open return getattr(self, name)(url) File "/usr/local/lib/python2.4/urllib.py", line 317, in open_http return self.http_error(url, fp, errcode, errmsg, headers) File "/usr/local/lib/python2.4/urllib.py", line 334, in http_error return self.http_error_default(url, fp, errcode, errmsg, headers) File "/usr/local/lib/python2.4/urllib.py", line 574, in http_error_default return addinfourl(fp, headers, "http:" + url) File "/usr/local/lib/python2.4/urllib.py", line 863, in __init__ addbase.__init__(self, fp) File "/usr/local/lib/python2.4/urllib.py", line 813, in __init__ self.read = self.fp.read AttributeError: 'NoneType' object has no attribute 'read'
Ist es mal wieder ein Kodierungsproblem? Fehlt mir ein Modul (habe SOAPpy und urllib importiert)? Per Webbrowser sieht der WSDL-File korrekt aus.
MfG, Patrick Holz
------------------------------------------------------------------------
_______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
_______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
Hallo,
solltest Du noch mehr Fragen zu SoapPy haben, dann versuch es doch mal
auf der (englischen) pywebsvcs-talk Mailingliste (siehe
pywebsvcs.sf.net).
Ich halte es für geschickter, erst das WSDL zu erzeugen (per Hand oder
geeignetem XML-Editor) und daraus dann Code zu generieren. Das
funktioniert zumindestens bei ZSI relativ gut.
Noch ein Hinweis: wenn ich richtig verstanden habe, wird die Entwicklung
von SoapPy wohl auslaufen und die Entwickler sich auf ZSI konzentrieren.
Gruß, Andreas
--
Andreas Kuntzagk
participants (3)
-
Andreas Kuntzagk
-
Diez B. Roggisch
-
Patrick Holz