2016-09-27 2 views
2

soap-wsdl 서비스에 suds-client를 사용하고 있습니다. 비누 서비스 용 비눗물 클라이언트를 설치하려고 할 때 유형을 찾을 수 없음 오류가 발생합니다. 나는 사방을 수색한다. 같은 오류가있는 많은 대답이 없습니다. 내가 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) 

입니다 Question1, Question2로 링크를 추가하고, 나는

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

이것은 웹 서비스에서 사용하는 기본 네임 스페이스입니다. 아무것도 찾지 못했다면 그것을 사용해보십시오. @BRiceP –

+0

나는 이것을 시도했지만 여전히 동일한 오류가 발생합니다 ('suds.TypeNotFound : 유형을 찾을 수 없습니다 : '(Struct, http : // www. w3.org/2001/XMLSchema,) '). 어쨌든 고마워! PHP SOAP 클라이언트에 대해서만 알고있는 것처럼 보이지만 API 제공자에게 직접 물어볼 것입니다. – BriceP