Problem mit ZSI, PyXML auf Windows mit Python2.6

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Marky
User
Beiträge: 24
Registriert: Donnerstag 22. Januar 2009, 08:12

Hallo zusammen,

ich bin gerade dabei einen WS-Client für einen bestehenden (Java)Webservice mit Python zu erstellen.
Im Netz habe ich was vielversprechendes nach der Anleitung von Richard Mutschler gefunden ( http://www.mutschler-net.de/htmlout/htm ... apTut.html ).
Da ich Python2.6 verwenden möchte, bin ich allerdings auf ein paar Probleme bei der Installation benötigter Libraries gestoßen.
z.B. gibt es ZSI 2.0 als egg-File nur bis Python-Version 2.5. Hab's dann trotzdem mal unter 2.6 installiert.
Als ich dann wsdl2py ausführen wollte, fehlte noch PyXML in der Installation. Offiziell ist das für Python 2.6 nicht portiert und für 2.5 kriege ich es nicht kompilliert, da mein C-Compiler nicht passt.
Zur Python-Version 2.6 fand ich es dann in den Tiefen des Internet als portierte bzw. extra gefixten Version auch nur als rpm.

Da kann man vielleicht sagen ... "Scheiß Windows", aber gibt es denn keine brauchbare Alternative, um sich einen Webservice (bzw. einen Client) mit Python unter Windows zu erstellen. Ich kann es irgendwie kaum glauben...
Die Sache ist eben die, dass ich unter Windows entwickle (PyDev und Eclipse) und der WS nur ein kleiner Teil einer größeren Anwendung ist, die man schon ab und an mal debuggen möchte.
Hat da jemand ein paar gute Ratschläge, Hinweis auf andere Frameworks, die mit 2.6 (noch) funktionieren ...?
Was ich gefunden habe ich alles uralt (halt OpenSource an denen irgendwann keiner mehr weitergearbeitet hat).
Habe das Gefühl, dass Python und Webservices nicht die besten Freunde sind... leider. :(
Gruß
Marky
BlackJack

Schau Dir mal suds an.

SOAP ist in der Tat nicht so beliebt in der Python-Welt. Für Webservices generell gilt das aber nicht, denn SOAP ist ja nicht die einzige Möglichkeit. Für XML-RPC bringt zum Beispiel die Standardbibliothek etwas mit.
Marky
User
Beiträge: 24
Registriert: Donnerstag 22. Januar 2009, 08:12

Hallo,

guter Tipp. Das könnte was werden ...
Werde das Ganze mal ausprobieren und berichten.

Tausend Dank!
Gruß
Marky
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

BlackJack hat geschrieben:Schau Dir mal suds an.
Ja, funktioniert sogar halbwegs. Aber ich würde wohl lieber XML-RPC oder JSON über REST nutzen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Marky
User
Beiträge: 24
Registriert: Donnerstag 22. Januar 2009, 08:12

Hallo BlackJack,

das ist was geworden !!! :D
Die Bibliothek funktioniert auch für Python2.6 ohne Installationsprobleme, genauso wie der daraus entstehende Client. Super!

@Leonidas: Für meinen Anwendungsfall funktioniert die API zum Glück "vollwegs" sozusagen. :wink:
Zunächst liegt bei mir eine Axis2-WS im document/literal Style zu Grunde.
Da ja REST ganz gerne als der "bessere WS" bezeichnet wird (Ich kann dazu nix zu sagen ... habe mich damit noch nicht eingehend beschäftigt) wäre das evtl. eine Option und JSON wegen dem geringeren Overhead oder warum schlägst Du das Format vor?

XML-RPC ... hm ... ich weiß nicht ... würde in diesem Fall wohl auch seinen Dienst tun, ist aber vielleicht für andere, zukünftige Anwendungen nicht ausreichend, zu simpel...
Da würde ich persönlich zunächst aus Homogenitätsgründen bei einer Technik bleiben.
Gruß
Marky
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Marky hat geschrieben:Da ja REST ganz gerne als der "bessere WS" bezeichnet wird (Ich kann dazu nix zu sagen ... habe mich damit noch nicht eingehend beschäftigt) wäre das evtl. eine Option und JSON wegen dem geringeren Overhead oder warum schlägst Du das Format vor?
Ja, weil JSON gerade im Bereich von Webapplikationen recht beliebt, simpel und universell unterstützt wird. Bei SOAP sehe ich das Problem von Design by Comitee wo am Schluss eine Technik rauskommt wo alle ihre Sachen reinbekommen haben und alles abdeckt aber die keinem viel nutzt. Andererseits wird es wohl eher schwer werden, Java-WS-Programmierer von etwas anderem als SOAP zu überzeugen :)

Zudem das was WSDL für Python-Applikationen bringt, in XML-RPC mit der Introspection-Erweiterung ebenfalls möglich ist.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Marky
User
Beiträge: 24
Registriert: Donnerstag 22. Januar 2009, 08:12

Leonidas hat geschrieben: Bei SOAP sehe ich das Problem von Design by Comitee wo am Schluss eine Technik rauskommt wo alle ihre Sachen reinbekommen haben und alles abdeckt aber die keinem viel nutzt. Andererseits wird es wohl eher schwer werden, Java-WS-Programmierer von etwas anderem als SOAP zu überzeugen :)
Nun ja, ich denke mal dass letzteres dem Umstand geschuldet ist, dass z.B. ein einfacher Axis-WS mit entsprechender Tool/Generator-Unterstützung (Eclipse WTP) recht locker von der Hand geht, ohne dass man mit SOAP wirklich in Berührung kommt. Dabei bleibt eigentlich vollkommen verborgen, was das für ein gar schröckliches :shock: Format ist.

Wenn es dann mal ans "Eingemachte" in Sachen SOAP geht, dann wird die ehemals grüne WS-Wiese plötzlich trist und grau und man erkennt, dass das alles ganz schön kompliziert werden kann. Eigentlich schon zu kompliziert.

Trotzdem würde ich erwarten/hoffen, dass Python den Zugriff über SOAP hinreichend unterstützt, zumindest was ein Client-Framework angeht und da scheint mir 'suds' eine wirklich brauchbare Lösung (vermutlich bis zu einem gewissen Grad) zu sein.
Gruß
Marky
Antworten