YII - 当我从SOA Client插件请求时,Webservice返回WSDL

时间:2012-07-02 11:50:43

标签: php web-services soap yii soap-client

当我从SOA客户端firefox add发布SOAP body到我的Yii websevice时,它返回WSDL而不是调用相应的方法。

如何调用相应的方法?

可能是什么问题?

1 个答案:

答案 0 :(得分:2)

查看生成的WSDL文件: 服务公开的方法的基本URL位于文件末尾的“位置”属性中(例如 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>
[...]

提供的网址“ / ws / 1 ”(或“?ws = 1 ”,具体取决于您的应用程序设置)附加到公开网络的控制器路由服务。

请参阅CWebServiceAction课程参考:

  

CWebServiceAction有两个目的。一方面,它显示指定Web服务API的WSDL内容。另一方面,它调用请求的Web服务API。名为 ws 的GET参数用于区分这两个方面:GET参数的存在表示执行后一个操作。

使用的GET参数是CWebServiceAction::serviceVar属性的值。

因此,您必须将所需的GET参数(例如“ws = 1”)附加到被调用的URL以便能够使用您的Web方法...或者使用“真正的”SOAP客户端来获取正确的服务URL调用Web方法。