0

SOAPクライアントfirefoxアドオンからYiiWebサービスにSOAP本体を投稿すると、WSDLが返され、それぞれのメソッドは呼び出されません。

それぞれのメソッドを呼び出す方法は?

何が問題なのですか?

4

1 に答える 1

2

生成されたWSDLファイルを参照してください。サービスによって公開されるメソッドのベースURLは、ファイルの最後にある「location」属性にあります(例:wsdl:service> wsdl:port> soap:address)。

サンプル :

[...]
<wsdl:service name="ServiceProviderService">
<wsdl:port name="ServiceProviderPort" binding="tns:ServiceProviderBinding">
<soap:address location="http://localhost/website/service/soap/ws/1"/>
</wsdl:port>
</wsdl:service>
[...]

提供されるURLには、Webサービスを公開するコントローラールートに「/ ws / 1」(またはアプリケーション設定によっては「 ?ws = 1 」)が追加されています。

CWebServiceActionクラスリファレンスを参照してください:

CWebServiceActionは2つの目的で機能します。一方では、WebサービスAPIを指定するWSDLコンテンツを表示します。一方、要求されたWebサービスAPIを呼び出します。wsという名前のGETパラメーターは、これら2つの側面を区別するために使用されます。GETパラメーターの存在は、後者のアクションの実行を示します。

使用されるGETパラメーターは、CWebServiceAction::serviceVarプロパティの値です。

したがって、Webメソッドを使用できるようにするには、呼び出されたURLに必要なGETパラメータ(「ws = 1」など)を追加する必要があります...または、適切なサービスURLをフェッチしてWebを呼び出す「実際の」SOAPクライアントを使用します方法。

于 2012-08-12T07:39:49.357 に答える