Bonjour ,

J'ai un webservice en SOAP et xml qui appel un pc et qui fournit une liste de clients dans un array et qui est renvoyé à l'appelant.
Ce service fonctionne sur pc windows avec easyphp en version 12.1 , un apache 2.4.2 et un php 5.4.6.

Nous installons un autre pc sur un autre lieu avec les une version de easyphp 14.1 plus récente , un apache 2.4.7 un php 5.5.8 et la même architecture.
Le service fonctionne aussi mais ,le voilà il arrive, lorsque le résultat renvoi un array trop long le soap me renvoi une erreur "looks like we got no XML document".
Le résultat étant récupérer avec un foreach je limite ma boucle aux 10 premiers résultats ça fonctionne à nouveau.

En mode non limité, j'ai tracé le tampon de sortie du soapServer, mon xml est bien là et bien formé, avec ses 65 résultats, je l'ai contrôlé avec un plugin. Pourtant je reçois du soapServer une erreur sur le php appelant.

La première machine n'ayant pas ce problème j'ai "copié" les valeur de php.ini à l'identique , enlevé le buffer soap mais rien n'y fait.
Une bizarrerie aussi , je ne tombe jamais dans l'exception. J'ai essayé de catcher avec exception mais je n'ai pas de retour d'erreur en local.
je vous fais grâce de tout le code de récupération de donnée qui fonctionne de toutes les façons.
Si vous avez une idée je suis preneur.

Le code est tout simple :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
try{
		$options = array('trace'=>true, "exceptions" => false, 'cache_wsdl' => WSDL_CACHE_NONE );
		$server = new soapServer($wsdl);
		$server->addFunction("getInfos");
 
 
		$server->handle();
		/** Récupération du tampon de sortie **/
		/**
		ob_start();
 
		$soapXml = ob_get_contents();
		ob_end_clean();
		file_put_contents("./tmp/error_log_soap.html", $soapXml ,FILE_APPEND);
		**/
 
	}
	catch(SoapFault $e) {
		file_put_contents("./tmp/error_log_soap.html" ,"<br>SOAP ERROR: ". $e->getTraceAsString() ,FILE_APPEND);	
	}