【发布时间】:2011-06-30 11:35:08
【问题描述】:
我正在使用 SalesForce PHP 工具包将我的软件 (PHP) 与 SalesForce 集成。
到目前为止,一切都很好,但是当我开始编写代码来调用 convertLead() 时,我收到了“Segmentation Fault”错误。
这是我正在运行的代码:
require_once('../salesforce/SforceEnterpriseClient.php');
ini_set('soap.wsdl_cache_enabled', 0);
$SForce = new SforceEnterpriseClient();
$result = $SForce->createConnection('../salesforce/enterprise.wsdl.xml');
$result = $SForce->login('user', 'pass+token');
echo "Logged In!";
$data = array(
'convertedStatus' => 'Converted',
'leadId' => '00QC000000mDcmJMAS'
);
$result = $SForce->convertLead(array($data));
就是这样。我遇到了分段错误。我尝试使用 StdClass 而不是键控数组,同样的事情。 SF工具包中的convertLead方法很简单,就是把同一个方法调用到一个SoapClient实例中……
注意:我从 CLI 运行此脚本,而不是通过 Apache。
更新:刚刚尝试使用我的脚本运行“strace”。它的最后几行是:
close(4) = 0
write(1, "Logged IN!", 10Logged IN!) = 10
open("error_log", O_WRONLY|O_CREAT|O_APPEND, 0644) = 4
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
另外,如果它是相关的:
php --version
PHP 5.2.13 (cli) (built: Jul 17 2010 22:01:13)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies
with eAccelerator v0.9.6.1, Copyright (c) 2004-2010 eAccelerator, by eAccelerator
with the ionCube PHP Loader v3.3.20, Copyright (c) 2002-2010, by ionCube Ltd., and
with Zend Optimizer v3.3.9, Copyright (c) 1998-2009, by Zend Technologies
这也发生在我的开发机器(Windows)中,所以我怀疑它是加速器或类似的东西:
php --version
PHP 5.2.13 (cli) (built: Feb 24 2010 14:37:44)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies
这可能会或可能不会特定于销售团队。可能不是,似乎是 SOAP PHP 库中的一个错误。也许请求/响应已损坏,但我看不到它们,因为它们是 HTTPS。
有什么想法可以诊断(或更重要的是,解决)这个问题吗?
谢谢!
丹尼尔
【问题讨论】:
-
使用gdb(或您选择的调试器)深入研究导致段错误的原因。 Generating a backtrace 应该可以帮助您(和我们)了解发生了什么。
标签: php soap segmentation-fault salesforce