2016-09-27 9 views
2

soap-wsdlサービスにsuds-clientを使用しています。 soapサービス用のsudsクライアントをセットアップしようとすると、タイプが見つかりませんでした。私はどこでも検索します。同じエラーで多くの未解決の質問があります。私はQuestion3ここタイプが見つかりません: '(スキーマ、http://www.w3.org/2001/XMLSchema)

は、最後の行に私のコード

from suds.client import Client 
wsdlfile = 'http://track.tcs.com.pk/trackingaccount/track.asmx?WSDL' 
track_client = Client(TCS_TRACK_URI) 

で、Question1Question2としてリンクを追加していて、私は

Traceback (most recent call last): 
File "<console>", line 1, in <module> 
File "/home/adil/Code/mezino/RoyalTag/royal_tag_services/sms_service/tcs_api.py", line 24, in <module> 
track_client = Client(TCS_TRACK_URI) 
File "/home/adil/Code/mezino/RoyalTag/royalenv/local/lib/python2.7/site-packages/suds/client.py", line 112, in __init__ 
self.wsdl = reader.open(url) 
File "/home/adil/Code/mezino/RoyalTag/royalenv/local/lib/python2.7/site-packages/suds/reader.py", line 152, in open 
d = self.fn(url, self.options) 
File "/home/adil/Code/mezino/RoyalTag/royalenv/local/lib/python2.7/site-packages/suds/wsdl.py", line 159, in __init__ 
self.build_schema() 
File "/home/adil/Code/mezino/RoyalTag/royalenv/local/lib/python2.7/site-packages/suds/wsdl.py", line 220, in build_schema 
self.schema = container.load(self.options) 
File "/home/adil/Code/mezino/RoyalTag/royalenv/local/lib/python2.7/site-packages/suds/xsd/schema.py", line 95, in load 
child.dereference() 
File "/home/adil/Code/mezino/RoyalTag/royalenv/local/lib/python2.7/site-packages/suds/xsd/schema.py", line 323, in dereference 
midx, deps = x.dependencies() 
File "/home/adil/Code/mezino/RoyalTag/royalenv/local/lib/python2.7/site-packages/suds/xsd/sxbasic.py", line 422, in dependencies 
raise TypeNotFound(self.ref) 
TypeNotFound: Type not found: '(schema, http://www.w3.org/2001/XMLSchema,)' 

は私が解決策を見つける助けてください、このエラーを得ましたか。

答えて

2

私は答えを探していて、最後に私の問題を解決する解決策を見つけました。

私たちは、欠落しているスキーマをsudsのインポートに追加するだけです。以下のコード

from suds.xsd.doctor import Import, ImportDoctor 
imp=Import('http://www.w3.org/2001/XMLSchema',location='http://www.w3.org/2001/XMLSchema.xsd') 
imp.filter.add('http://tempuri.org/') 
track_client = Client(TCS_TRACK_URI, doctor=ImportDoctor(imp)) 
+0

私は[TextbrokerのAPI](https://api.textbroker.fr/Budget/budgetCheckService.php?wsdl)に連絡するために、これをしようとしているが、私はに渡すかわからないです'imp.filter.add'を使って動作させます。 「http://tempuri.org/」はどこにありますか?ありがとう – BriceP

+0

これはWebサービスが使用するデフォルトの名前空間です。何も見つからない場合は、それを試してみてください。@BriceP –

+0

私はこれを試してみましたが、私はまだ同じエラーが出ます( 'suds.TypeNotFound:タイプが見つかりません: '(Struct、http:// www。 w3.org/2001/XMLSchema、) '))。とにかくありがとう! API SOAPクライアントについてのみ知っているように見えますが、APIプロバイダに直接質問します。 – BriceP

関連する問題