当我从SOA客户端firefox add发布SOAP body到我的Yii websevice时,它返回WSDL而不是调用相应的方法。
如何调用相应的方法?
可能是什么问题?
答案 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方法。