Bonjour à tous,
Je débute tout juste en SOAP, j'ai le code suivant qui fonctionne très bien en local, mais rien à faire, il ne fonctionne pas chez mon hébergeur et je ne trouve pas la raison ... quelqu'un peu m'expliquer ??
En fait, j'ai une page blanche coté hébergeur ... rien pas de message d'erreur ... rien ...

Client.php
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
22
23
24
25
26
<?php
// Pour supprimer le cache du web-service
ini_set('soap.wsdl_cache_enabled', 0);
 
// Nouveau Client SOAP
try {
   $url = "http://www.monsite.fr/main/services/exemple/monFormat.wsdl";      
 
   // Nouvelle instance de la classe soapClient
   $client = new SoapClient($url, array('trace' => 1));
   $parm = date('Y-m-d');
 
    // Appel de la méthode QuelJour du service web
   try{
      $oReturn =  $client->__soapCall('QuelJour', array('string' =>$parm));
   } catch (SoapFault $fault) {
    	trigger_error("SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})", E_USER_ERROR);
   }
 
   // affiche le résultat
   var_dump($oReturn);
   } catch (SoapFault $fault) {
       echo 'erreur : '.$fault;
   }
 
?>
serveur.php
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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?php
 
   // Pour supprimer le cache du web-service
   ini_set('soap.wsdl_cache_enabled', 0);
   // Pour définir le temp maximal d'éxecution de notre web-service
   ini_set('default_socket_timeout', 180);
   
   
   // Nom de notre web-service
   class Server {
      
      // Le service QuelJour que l'on a définit dans notre format wsdl
      function QuelJour($parm) {
   	   $aJour[1] = 'Lundi';
   	   $aJour[2] = 'Mardi';
   	   $aJour[3] = 'Mercredi';
   	   $aJour[4] = 'Jeudi';
   	   $aJour[5] = 'Vendredi';
   	   $aJour[6] = 'Samedi';
   	   $aJour[0] = 'Dimanche';
   	   return $aJour[date("w",strtotime($parm))];
      }
   }
 
 
   // On tente d'instancier la classe soapServer
   // Si cela s'avère impossible, on affiche une erreur
   try {
       $server = new SoapServer('monFormat.wsdl',  array('trace' => 1,'encoding'	=> 'ISO-8859-1'));
       // On définit la classe qui va gérer les requêtes SOAP (pour nous c'est la class Server)
       $server->setclass('Server');
       $server->setPersistence(SOAP_PERSISTENCE_REQUEST);
   } catch (Exception $e) {
       echo 'erreur'.$e;
   }
   // Si l'appel provient d'un Web-Service
   if ($_SERVER['REQUEST_METHOD'] == 'POST') {
      try {
         $server->handle();
      }
      catch (Exception $e) {
         echo 'erreur'.$e;
      }
   }
 
   // Facultatif seulement pour montrer les fonctions disponibles par le web-service
   else {
       echo '<strong>This SOAP server can handle following functions : </strong>';
       echo '<ul>';
       foreach($server -> getFunctions() as $func) {
           echo '<li>' , $func , '</li>';
       }
       echo '</ul>';
   }
 
?>
en fait, je me demande si la methode __soapCall est bien reconnu chez mon hébergeur (PHP Version 5.1.6)
Je compte sur vous pour me donner des pistes, des idées ...

D'avance, un grand merci

Rg