SOAP-ENV:Server -调用非对象上的成员函数getAttribute()


SOAP-ENV:Server - Call to a member function getAttribute() on a non-object

我设置了cron作业来调用执行抓取功能的SOAP服务。我从这些脚本中得到错误,这些脚本被catch捕获:

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)记录任何错误。

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

如果这是一个巧合,这是你得到的,如果你评估serialize(null),我会非常惊讶,这表明两个问题:首先,这个论点应该是空的;其次,为什么要通过serialize来运行呢?