Page 1 sur 1

NuSoap call error

Posté : 21 août 2009, 14:13
par Iris
Bonjour

Avec le script ci-dessous (fonctionnant avec NuSoap) j'arrive bien à me connecter au webservice mais par contre lorsque je fais le 'call' cela me retour l'erreur suivante. Savez vous ce que cela peut vouloir dire ?
Merci de votre aide...

Code : Tout sélectionner

Fault Array ( [faultcode] => soap:Server [faultstring] => Le serveur n'a pas pu traiter la demande. --> La référence d'objet n'est pas définie à une instance d'un objet. [detail] => )
require_once('include/lib/nusoap.php');
$options        = array(
'compression'=>true,
'exceptions'=>false,
'trace'=>true
);
$client = new soapclient("http://www.exemple.com/test.asmx?WSDL", $options);
$err = $client->getError();
if ($err) {
	echo '<h2>Constructor error</h2><pre>' . $err . '</pre>';
	echo '<h2>Debug</h2><pre>' . htmlspecialchars($client->getDebug(), ENT_QUOTES) . '</pre>';
	exit();
} else {
	$result = $client->call(Sujet, "test");
	if ($client->fault) {
		echo '<h2>Fault</h2><pre>'; print_r($result); echo '</pre>';
	} else {
		$err = $client->getError();
		if ($err) {
			echo '<h2>Error</h2><pre>' . $err . '</pre>';
		} else {
			echo '<h2>Result</h2><pre>'; print_r($result); echo '</pre>';
		}
	}
}

Re: NuSoap call error

Posté : 21 août 2009, 16:26
par Yosh
Il te faut mettre des ' dans l'appel de la méthode du Web Service:
$client->call('Sujet', 'test');
A titre d'exemple, l'appel d'un de mes web service se fait comme ci-dessous:
$client = new SoapClient(SERVER_URL . "wsdl/IntegrationData.wsdl.php", array('trace' => 1, 'soap_version' => SOAP_1_1));
		//Appel de la methode wsResultIntegrationData du service web
		$result = $client->__soapCall('wsResultIntegrationData', $parametres);

Re: NuSoap call error

Posté : 21 août 2009, 16:36
par Iris
J'ai essayé avec
$result = $client->call('Sujet', 'test');
et tjrs la même erreur !

en utilisant une autre fonction qui ne prend pas de parametre ça fonctionne bien
	$result = $client->call(Liste);
	if ($client->fault) {
		echo '<h2>Fault</h2><pre>'; print_r($result); echo '</pre>';
	} else {
		$err = $client->getError();
		if ($err) {
			echo '<h2>Error</h2><pre>' . $err . '</pre>';
		} else {
			echo '<h2>Result</h2><pre>'; print_r($result); echo '</pre>';
		}
	}

Re: NuSoap call error

Posté : 21 août 2009, 16:43
par Yosh
Effectivement, d'ailleurs l'erreur renvoyé par Soap informe que c'est le serveur qui génère une erreur et pas le client.

Il faut que tu vérifie le code du serveur ainsi que le WSDL, pour voir si la méthode est correctement référencé.

Re: NuSoap call error

Posté : 21 août 2009, 16:51
par Iris
OK merci
Mais je n'ai pas accès aux codes coté serveur. Y at'il un fonction soap qui me permet de lister ttes les fonctions du webservice ?

Re: NuSoap call error

Posté : 21 août 2009, 17:31
par Yosh

Re: NuSoap call error

Posté : 21 août 2009, 17:37
par Iris
Merci sauf que cette fonction ne fonctionne pas avec la lib NuSoap. Je suis encore avec php4 :roll: