SOAPクライアントfirefoxアドオンからYiiWebサービスにSOAP本体を投稿すると、WSDLが返され、それぞれのメソッドは呼び出されません。
それぞれのメソッドを呼び出す方法は?
何が問題なのですか?
SOAPクライアントfirefoxアドオンからYiiWebサービスにSOAP本体を投稿すると、WSDLが返され、それぞれのメソッドは呼び出されません。
それぞれのメソッドを呼び出す方法は?
何が問題なのですか?
生成された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クライアントを使用します方法。