Ich habe den folgenden einfachen Python Testskript, das Suds verwendet einen SOAP-Web-Service anrufen (der Dienst in ASP.net geschrieben):Python/Suds: Typ wird nicht gefunden: 'xs: complex'
from suds.client import Client
url = 'http://someURL.asmx?WSDL'
client = Client(url)
result = client.service.GetPackageDetails("MyPackage" )
print result
Wenn ich diesen Test Skript ausführen ich erhalte die folgende Fehlermeldung (verwendeter Code Markup wie es wickelt nicht):
No handlers could be found for logger "suds.bindings.unmarshaller"
Traceback (most recent call last):
File "sudsTest.py", line 9, in <module>
result = client.service.GetPackageDetails("t3db" )
File "build/bdist.cygwin-1.5.25-i686/egg/suds/client.py", line 240, in __call__
File "build/bdist.cygwin-1.5.25-i686/egg/suds/client.py", line 379, in call
File "build/bdist.cygwin-1.5.25-i686/egg/suds/client.py", line 240, in __call__
File "build/bdist.cygwin-1.5.25-i686/egg/suds/client.py", line 422, in call
File "build/bdist.cygwin-1.5.25-i686/egg/suds/client.py", line 480, in invoke
File "build/bdist.cygwin-1.5.25-i686/egg/suds/client.py", line 505, in send
File "build/bdist.cygwin-1.5.25-i686/egg/suds/client.py", line 537, in succeeded
File "build/bdist.cygwin-1.5.25-i686/egg/suds/bindings/binding.py", line 149, in get_reply
File "build/bdist.cygwin-1.5.25-i686/egg/suds/bindings/unmarshaller.py", line 303, in process
File "build/bdist.cygwin-1.5.25-i686/egg/suds/bindings/unmarshaller.py", line 88, in process
File "build/bdist.cygwin-1.5.25-i686/egg/suds/bindings/unmarshaller.py", line 104, in append
File "build/bdist.cygwin-1.5.25-i686/egg/suds/bindings/unmarshaller.py", line 181, in append_children
File "build/bdist.cygwin-1.5.25-i686/egg/suds/bindings/unmarshaller.py", line 104, in append
File "build/bdist.cygwin-1.5.25-i686/egg/suds/bindings/unmarshaller.py", line 181, in append_children
File "build/bdist.cygwin-1.5.25-i686/egg/suds/bindings/unmarshaller.py", line 104, in append
File "build/bdist.cygwin-1.5.25-i686/egg/suds/bindings/unmarshaller.py", line 181, in append_children
File "build/bdist.cygwin-1.5.25-i686/egg/suds/bindings/unmarshaller.py", line 102, in append
File "build/bdist.cygwin-1.5.25-i686/egg/suds/bindings/unmarshaller.py", line 324, in start
suds.TypeNotFound: Type not found: 'xs:complexType'
an der Quelle der Suche nach der Header der WSDL-Datei (umformatiert passen):
<?xml version="1.0" encoding="utf-8" ?>
<wsdl:definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:s="http://www.w3.org/2001/XMLSchema"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:tns="http://http://someInternalURL/webservices.asmx"
xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
targetNamespace="http://someURL.asmx"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
Ich bin zu raten, basierend auf der letzten Zeile der Ausgabe:
suds.TypeNotFound: Type not found: 'xs:complexType'
, die ich brauche doctor class Sud zu verwenden, um das Schema zu beheben, aber ich einen SOAP-Neuling ist nicht genau wissen, Bedürfnisse, was in meinem Fall festgelegt. Hat jemand hier Erfahrung mit Suds zu reparieren/korrigieren Schema?
Ich habe gerade versucht, eine einfache C# -Test-Anwendung und es kann sich mit diesem Service gut verbinden (aber dann ist der Dienst ASP.net basiert). Könnte es etwas Spezifisches sein, das Suds standardmäßig nicht unterstützt? – Danielb
Es sieht so aus, als ob der Dienst versucht, ein DataSet zurückzugeben. Ich sehe Folgendes im Logger: WARNUNG: suds.bindings.unmarshaller: Attribut (IsDataSet) Typ, nicht gefunden WARNUNG: suds.bindings.unmarshaller: Attribut (Name) Typ, nicht gefunden FEHLER: Schaum .bindings.unmarshaller: Schema: 0x7fce048c – Danielb
Hört sich an, als ob SUDS nicht von einem-Tag importiert, das die Struktur des Datensatzes angibt. Haben Sie Ihre WSDL nach Importen durchsucht? Wenn das die Antwort ist, dann sollte der ImportDoctor von SUDS helfen können. Beispiele auf https://fedorahosted.org/suds/wiki/Documentation#FIXINGBROKENSCHEMAs –
ewall