我正在开发一个需要来自数据库的数据的网络应用程序。 对于与db的通信,我使用WSO2AS。
我创建了一个数据库并将其链接到创建的数据服务,当我在WSO2的管理面板中测试服务时,我从数据库中获取所需的数据。
我创建的数据服务称为TestService。
现在我想在我的php模板中使用此代码获得相同的响应。
<?php
try {
$client = new SoapClient('http://192.168.178.12:9763/services/TestService?wsdl');
$result = $client->__soapCall('greet');
printf("Result = %s\r\n", $result->return);
} catch (Exception $e) {
printf("Message = %s\r\n",$e->__toString());
}
?>
但是当我尝试转储$ result时,这会给出NULL。
当我尝试执行创建的WSO2示例时,我确实得到了正确的结果。虽然soapcall代码相同,但只有服务名称不同。
<?php
try {
$client = new SoapClient('http://192.168.178.12:9763/services/HelloService?wsdl');
$result = $client->__soapCall('greet', array(array('name' => 'Sam')));
printf("Result = %s\r\n", $result->return);
} catch (Exception $e) {
printf("Message = %s\r\n",$e->__toString());
}
?>
此代码返回“Hello Sam !!!”。
所以我想知道我做错了什么,我个人认为我在实现服务本身时犯了一个错误,但找不到它。
如果需要更多信息,请随时提问,希望有人可以帮助我。
提前致谢!
答案 0 :(得分:0)
显然你需要在你的soapcall中有参数。
调用此__soapCall('greet',array());
它做出了适当的回应。