2

Python Suds を使用して SOAP 呼び出しを試みています。WSDL は正常にインポートされ、生成されたクライアントは整形式に見えますが、メソッドにアクセスできません。

Sudsのドキュメントでは、メソッド呼び出しについて次のように説明しています。

client.service.Company.GetQueue()

しかし、これのすべてのバリエーションで得られるのは次のとおりです。

suds.MethodNotFound: メソッドが見つかりません: 'OmnitureWebService.OmnitureWebServicePort.Company'

これが私が作成したクライアントの変数ダンプです。メソッドがそこにあることがわかりますが、どうすればそれらにアクセスできますか? ポートを指定してプレフィックスを指定しようとしましたが、何も機能していないようです。これについて助けてくれてありがとう。

> obj._ServiceSelector__client =  Suds (
> https://fedorahosted.org/suds/ ) 
> version: 0.4 GA  build: R699-20100913
> 
> Service ( OmnitureWebService )
> tns="http://www.omniture.com/"   
> Prefixes (2)
>       ns0 = "http://schemas.xmlsoap.org/soap/encoding/"
>       ns1 = "http://www.omniture.com/"    Ports (1):
>       (OmnitureWebServicePort)
>          Methods (173):
>             CodeManager.DeleteCodeArchive(xs:int
> archive_id, )
>             CodeManager.GenerateCode(xs:string
> char_set, xs:string code_type, xs:int
> cookie_domain_periods, xs:string
> currency_code, xs:string rsid, xs:int
> secure, )
>             CodeManager.GetCodeArchives(int_array
> archive_id_list, xs:string
> binary_encoding, xs:int
> populate_code_items, )
>             CodeManager.SaveCodeArchive(xs:string
> archive_description, xs:int
> archive_id, xs:string archive_name,
> code_items code, )
>             Company.CancelQueueItem(xs:int qid, )
>             Company.DownloadProduct(productType
> productType, )
>             Company.GetEndpoint(xs:string company,
> )
>             Company.GetQueue()
>             Company.GetReportSuites(string_array
> rs_types, xs:string sp, )
>             Company.GetTokenCount()
>             Company.GetTokenUsage()
>             Company.GetTrackingServer(xs:string
> rsid, )
>             Company.ResetTokenCount(xs:string
> auth_key, )
4

2 に答える 2

5

kfedは正しいです、それを行うのはドットです。しかし、WSDLを変更したくありません。

ただし、この回避策を見つけました
。getattrを使用して文字列でメソッド名を参照し、メソッドへのハンドルを取得してから、次のように呼び出します。

Company_GetTokenCount = getattr(client.service, 'Company.GetTokenCount')
Company_GetTokenCount()

https://fedorahosted.org/suds/ticket/253
Me:Sudsバージョン0.4 GAビルド:R699-20100913

于 2011-12-16T20:07:38.277 に答える
0

あは。「。」のように見えます。名前空間内。これはXMLでは適切ですが、Sudsに問題があります。削除しようとしましたが、SudsはWSDLもキャッシュします。脱出する方法は次のとおりです。

https://fedorahosted.org/suds/wiki/TipsAndTricks

そして、ページの下の方に、キャッシュをオフにする方法があります。

于 2011-01-07T20:58:44.917 に答える