WSO2AS服务的Soapcall返回null

时间:2013-11-29 09:28:11

标签: php soap wso2

我正在开发一个需要来自数据库的数据的网络应用程序。 对于与db的通信,我使用WSO2AS。

我创建了一个数据库并将其链接到创建的数据服务,当我在WSO2的管理面板中测试服务时,我从数据库中获取所需的数据。

我创建的数据服务称为TestService。

WSO2AS data service test response

现在我想在我的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 !!!”。

所以我想知道我做错了什么,我个人认为我在实现服务本身时犯了一个错误,但找不到它。

如果需要更多信息,请随时提问,希望有人可以帮助我。

提前致谢!

1 个答案:

答案 0 :(得分:0)

显然你需要在你的soapcall中有参数。

调用此__soapCall('greet',array());

它做出了适当的回应。