J'ai tous mes appels SOAP fonctionnant avec succès dans PHP CORE (quand je les lance dans WAMP). Mais quand j'essaye juste d'ajouter le même code à Zend Server, pour une raison quelconque il indique "le serveur a rencontré une erreur interne". Vous ne savez pas ce qui se passe! Un appel utilisant SoapClient()
ne fonctionne pas du tout ... J'utilise Local WSDL et le service de savon local qui est donné par Alchemy. De toute façon, j'ai essayé la même chose avec Zend_Soap_Client
aussi, mais quand même, ça ne marche pas !! Voici la décharge du client Zend Soap créé:PHP :: SoapClient au lieu de Zend_Soap_Client dans (Zend Server avec Zend Framework Version 1.10.7)
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"
Même un appel comme getFunctions()
sur le client me donne l'erreur. Qu'est-ce que je fais de mal?
trouvé ces erreurs dans 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.
Url Demande: http://localhost:8089/SOME/public/index.php/NewPatient/load-gsdd-data
Par conséquent,
Controller: NewPatient
Action: loadGssdData
Je vous écris appel de savon dans ce action.
Cela fonctionne:
$hey = new Zend_Soap_Client(APPLICATION_PATH . '\WSAlchemy.wsdl');
$hey->location ='http://localhost:3434/Alchemy';
echo var_dump($hey);
Mais échoue quand je l'appelle $hey->getFunctions()
!
Cela ne fonctionne pas du tout,
$hey = new SoapClient(APPLICATION_PATH . '\WSAlchemy.wsdl');
$hey->location ='http://localhost:3434/Alchemy';
echo var_dump($hey);
ou même cela!
$hey = new SoapClient("http://localhost:8089/SOME/public/WSAlchemy.wsdl");
echo var_dump($hey);
Note: Je ne peux accéder au fichier wsdl à http://localhost:8089/SOME/public/WSAlchemy.wsdl
Je me demande pourquoi je ne peux pas utiliser SoapClient
dans Zend Server, qui est PHP de base un !! :(
Pour essayer, j'ai désactivé Soap Client Zend Server Il a dit:
[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
Alors, je permis à nouveau, il dit pas d'erreur là, toujours je reçois erreur Ceci est mon accès au serveur! connectez-vous après l'activation de l'extension:
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
Alors, quand je charge je reçois ceci:
Après avoir ouvert ce fichier, il y a une erreur de serveur.
D'autres contrôleurs et actions fonctionnent bien! J'ai juste un problème avec cette action.
Merci beaucoup pour votre temps :)
Typiquement dans votre journal PHP, il y aura un message d'erreur plus informatif juste l'erreur '500 Internal server'. Supposons que vous dépendiez des dépendances. 'libxml' devrait être activé et si vous utilisez SSL avec ce service, vous devriez vous assurer que' openssl' est configuré. Essayez de désactiver la mise en cache WSDL et d'activer [option de trace] (http://php.net/manual/en/soapclient.getlastrequest.php) (débogage) avec le SoapClient. – ficuscr
Merci pour le commentaire rapide. Comme j'utilise Zend Server, j'ai vu les logs sur php_error, ça ne montre rien.J'ai vérifié les logs d'accès, les logs d'erreurs, rien n'est affiché.Pour le cache j'ai fait ça 'ini_set ('soap.wsdl_cache_enabled', 0); ini_set ('soap.wsdl_cache_ttl', 0); "Toujours pas de chance! L'option de trace est activée par défaut par Zend. Merci pour la réponse :) – Yash
Vérifié niveau error_reporting'? Pas simplement supprimer les erreurs? Impossible de déboguer un 'Erreur interne du serveur' générique. – ficuscr