/[openfoncier]/trunk/services/outgoing/messagesenderSoap.php
ViewVC logotype

Diff of /trunk/services/outgoing/messagesenderSoap.php

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1299 by nhaye, Fri Mar 1 10:18:14 2013 UTC revision 1302 by nhaye, Mon Mar 4 11:43:25 2013 UTC
# Line 30  if (DEBUG > PRODUCTION_MODE) { Line 30  if (DEBUG > PRODUCTION_MODE) {
30   */   */
31  define('HTTP_RESULT_OK', '200');  define('HTTP_RESULT_OK', '200');
32    
   
 /**  
  * Fait le parse d'une chaine de characters recu comme  
  * reponse a une requette curl  
  * @param string $return La chaine de caracteres contenant un tableau  
  * en format JSON  
  * @return mixed Tableau associative contenant ce qui se trouve en  
  * format JSON dans l'entree  
  */  
 function parse($return)  
 {  
     // remplace les '{' et '}' par chaine vide  
     $return = str_replace('{', '', $return);  
     $return = str_replace('}', '', $return);  
     // trimme les espaces et tabs  
     $return = trim($return, " \t");  
     // remplace les retours de ligne  
     $return = preg_replace('/\s\s+/', '', $return);  
     // remplace les '"' par chaine vide  
     $return = str_replace("\"", "", $return);  
     // remplace ": " par ":"  
     $return = str_replace(": ", ":", $return);  
       
     $result = array();  
     // obtiens les (clef => valeur) paires  
     $resparray = explode(',', $return);  
   
     // si on a trouve des (clef => valeur) paires  
     if ($resparray) {  
         foreach ($resparray as $resp) {  
             // obtiens le clef et la valeur  
             $keyvalue = explode(':', $resp);  
             // stocke le clef et la valeur dans le $result  
             $result[trim(str_replace('"', '',$keyvalue[0]))] =  
                 trim(str_replace('"', '', $keyvalue[1]));  
         }  
     }  
     // retourne le tableau associative  
     return $result;  
 }  
   
33  /**  /**
34   * Méthode permettant d'envoyer des messages SOAP   * Méthode permettant d'envoyer des messages SOAP
35   */   */
36  function postViaSOAP($msg) {  function postViaSOAP($msg) {
     print_r("\n\n");  
37      global $ARRETE_WSDL;      global $ARRETE_WSDL;
38      global $ARRETE_URL_WS;      global $ARRETE_URL_WS;
39    
40      $data = $msg->body;      $data = $msg->body;
41        $data = json_decode($data);
42    
43      $soapClient = new SoapClient($ARRETE_WSDL,array(      // Verification que l'url du WSDL est définie
                                                     "trace" => '1'));  
   
44      if (empty($ARRETE_WSDL)) {      if (empty($ARRETE_WSDL)) {
45          logger::instance()->cleanLog();          logger::instance()->cleanLog();
46          logger::instance()->log("Le URL de fichier WSDL", EXTRA_VERBOSE_MODE);          logger::instance()->log("L'URL de fichier WSDL", EXTRA_VERBOSE_MODE);
47          logger::instance()->writeLogToFile();          logger::instance()->writeLogToFile();
48          return;          return;
49      }      }
50    
51        // Instanciation du client SOAP
52        $soapClient = new SoapClient($ARRETE_WSDL,array("trace" => AMQP_DEBUG));
53                                
     // Call RemoteFunction ()  
54      $error = 0;      $error = 0;
55    
56        // Tentative d'appel de la méthode ws_Send_Chronos_Arret du serveur SOAP
57      try {      try {
58          $info = $soapClient->__soapCall("ws_Send_Chronos_Arret", array($data));          $info = $soapClient->ws_Send_Chronos_Arret($data);
59            // accuse de reception du message    
60            $msg->delivery_info['channel']->
61                basic_ack($msg->delivery_info['delivery_tag']);
62      } catch (SoapFault $fault) {      } catch (SoapFault $fault) {
63            // Gestion d'erreurs
64          $error = 1;          $error = 1;
65          print_r("\nERROR: faultcode :".$fault->faultcode."\n");  
         print("ERROR: faultstring :".$fault->faultstring."\n");  
66          logger::instance()->cleanLog();          logger::instance()->cleanLog();
67          logger::instance()->log("Erreur ".$fault->faultcode." : ".$fault->faultstring, EXTRA_VERBOSE_MODE);          logger::instance()->log("Erreur ".$fault->faultcode." : ".$fault->faultstring, EXTRA_VERBOSE_MODE);
68          logger::instance()->writeLogToFile();          logger::instance()->writeLogToFile();
69            // le resultat de l'execution de curl indique un erreur
70            // dors un peu avant de refuser le message
71            sleep(2);
72            // refuse le message
73            $msg->delivery_info['channel']->basic_reject(
74                                $msg->delivery_info['delivery_tag'], true);
75        }
76        
77        // envoie un message avec la chaine "quit" pour ce consumeur
78        if ($msg->body === 'quit') {
79            $msg->delivery_info['channel']->
80                basic_cancel($msg->delivery_info['consumer_tag']);
81      }      }
 }  
   
   
82    
83  // pour des besoins de log il faut set $_SERVER["REQUEST_URI"]      // Retour de la méthode ws_Send_Chronos_Arret (à utiliser si besoin)
84  if (!isset($_SERVER["REQUEST_URI"])) {      // $info->ws_DA_Out_4D_vError
85      $_SERVER["REQUEST_URI"] = __FILE__;      // $info->ws_DA_Out_Chrono_Arret_ADS
86        // $info->ws_DA_Out_N_Doss_ADS
87  }  }
88    
89  // si le $argv[1] manque on ne peut pas cree un tag unique pour le  // si le $argv[1] manque on ne peut pas cree un tag unique pour le

Legend:
Removed from v.1299  
changed lines
  Added in v.1302

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26