我的所有 SOAP 调用都在 PHP CORE 中成功运行(当我在 WAMP 中运行它们时)。但是当我尝试将相同的代码添加到 Zend Server 时,由于某种原因它说“服务器遇到内部错误”。不知道发生了什么!使用呼叫SoapClient()
根本不起作用...我正在使用 Alchemy 提供的本地 WSDL 和本地肥皂服务。不管怎样,我也试过了Zend_Soap_Client
,但是还是不行!!这是 Zend Soap 客户端创建的转储:
object(Zend_Soap_Client)#37 (29) { ["_encoding":protected]=> string(5) "UTF-8" ["_classmap":protected]=> NULL ["_faultExceptions":protected]=> array(0) { } ["_soapVersion":protected]=> int(2) ["_uri":protected]=> NULL ["_location":protected]=> NULL ["_style":protected]=> NULL ["_use":protected]=> NULL ["_login":protected]=> NULL ["_password":protected]=> NULL ["_proxy_host":protected]=> NULL ["_proxy_port":protected]=> NULL ["_proxy_login":protected]=> NULL ["_proxy_password":protected]=> NULL ["_local_cert":protected]=> NULL ["_passphrase":protected]=> NULL ["_compression":protected]=> NULL ["_connection_timeout":protected]=> NULL ["_stream_context":protected]=> NULL ["_features":protected]=> NULL ["_cache_wsdl":protected]=> NULL ["_user_agent":protected]=> NULL ["_wsdl":protected]=> string(77) "C:\Program Files (x86)\Zend\Apache2\htdocs\C3Nexus\application\WSAlchemy.wsdl" ["_soapClient":protected]=> NULL ["_lastMethod":protected]=> string(0) "" ["_soapInputHeaders":protected]=> array(0) { } ["_permanentSoapInputHeaders":protected]=> array(0) { } ["_soapOutputHeaders":protected]=> array(0) { } ["location"]=> string(29) "http://localhost:3434/Alchemy"
即使是像getFunctions()
客户端这样的电话也给了我错误。我究竟做错了什么?
在 ZendEnabler.log 中发现这些错误
[3/15/2013 2:21:55 PM] Error: Read data error - unable to get read result. Code 109.
[3/15/2013 2:21:55 PM] Error: Request for C:/Program Files (x86)/Zend/Apache2/htdocs/SOME/public/index.php: Unable to get the response from PHP process
[3/15/2013 2:21:55 PM] Error: PHP process 9872 from the "application/x-httpd-php" pool has exited with status 255.
网址请求:http://localhost:8089/SOME/public/index.php/NewPatient/load-gsdd-data
因此,
控制器: NewPatient
动作:loadGssdData
我在那个动作中写肥皂电话。
这有效:
$hey = new Zend_Soap_Client(APPLICATION_PATH . '\WSAlchemy.wsdl');
$hey->location ='http://localhost:3434/Alchemy';
echo var_dump($hey);
但是当我打电话时失败了$hey->getFunctions()
!
这根本行不通
$hey = new SoapClient(APPLICATION_PATH . '\WSAlchemy.wsdl');
$hey->location ='http://localhost:3434/Alchemy';
echo var_dump($hey);
甚至这个!
$hey = new SoapClient("http://localhost:8089/SOME/public/WSAlchemy.wsdl");
echo var_dump($hey);
注意:我可以在以下位置访问 wsdl 文件http://localhost:8089/SOME/public/WSAlchemy.wsdl
我想知道为什么我不能SoapClient
在 Zend Server 中使用,这是核心 PHP 之一!:(
为了尝试,我在 Zend Server 中禁用了 Soap Client 它说:
[15-Mar-2013 14:46:23] PHP Fatal error: Class 'SoapClient' not found in C:\Program Files (x86)\Zend\Apache2\htdocs\SOME\application\controllers\GSDD.php on line 2
所以,我再次启用,它说那里没有错误,但我仍然收到错误!这是启用扩展后我的服务器访问日志:
127.0.0.1 - - [15/Mar/2013:14:54:06 -0400] "POST /ZendServer/index.php/Log-Tail/Index HTTP/1.1" 200 9205
127.0.0.1 - - [15/Mar/2013:14:54:07 -0400] "POST /ZendServer/index.php?controller=systray&action=exec&do=ping HTTP/1.1" 200 643
127.0.0.1 - - [15/Mar/2013:14:54:35 -0400] "GET /SOME/public/index.php/NewPatient/load-gsdd-data HTTP/1.1" 500 499
所以当我加载我得到这个:
打开该文件后,那里有服务器错误。
其他控制器和操作工作正常!我只是对这个动作有问题。
非常感谢您的时间:)