SOAP-ENV:服务器 - 在非对象上调用成员函数getAttribute()

时间:2015-08-25 17:54:21

标签: php soap

我有cron作业设置来调用一个刮取函数的SOAP服务。我一直在从其中一个脚本中捕获错误:

Error:  SoapFault exception: [SOAP-ENV:Server] Call to a member function getAttribute() on a non-object in /var/www/run_code.php:38
Stack trace: 

#0 /var/www/run_code.php(38): SoapClient->__call('scrapeRankingsB...', Array) 
#1 /var/www/run_code.php(38): SoapClient->scrapeRankingsBulk('N;', 0, 'a:1:{i:19131;s:...', 50, 'domain.com')

第38行是:

$results = $client->scrapeRankingsBulk($array,0,$array2,50,'domain.com');

我正在与:

建立联系
$client = new SoapClient('http://IP?WSDL', array('trace' => 1) ); 

绝对没有对 getAttribute 的调用,所以我想知道为什么抱怨getAttribute?它是在内部调用它,还是只能来自SoapServer?

在服务器上, scrapeRankingsBulk 方法无法直接调用服务器端的 getAttribute 。并且/var/log/apache2/error.log没有从服务器记录任何错误(LogLevel = warn)。

1 个答案:

答案 0 :(得分:1)

如果查看异常的堆栈跟踪,可以看到第一个参数是字符串'N;',即使传递给它的变量名为$array

如果你评价serialize(null),这就是你所得到的,这是一个巧合,我会感到非常惊讶,这表明存在两个问题:首先,这个论点应该是否为空;其次,为什么它贯穿serialize