2017-06-20 5 views
-1

Je suis nouveau sur axis2 et php. J'ai besoin d'implémenter client.php qui va faire certaines opérations basées sur le middleware qui est sur le port 8282. mon problème est que mon localhost est 8080 et je ne peux pas accéder au middleware. voici le code:Exception SoapFault: [HTTP] Protocole inconnu. Seuls http et https sont autorisés

<?php 
class ScriptSoapClient extends SoapClient { 
    public function __doRequest($request,$location,$action,$version,$one_way=0) { 
     $response=parent::__doRequest($request,$location,$action,$version,$one_way); 
     $response=preg_replace('#^.*(<\?xml.*>)[^>]*$#s','$1',$response); 
     return $response; 
    } 
} 
// | is used as splitting char for arrays 
function runService() { 
    //global $KERNELURL; 
    $KERNELURL="127.0.0.1:8282/axis2/services/MiddleService?wsdl"; $num=func_num_args(); 
    if ($num < 2) return; 

    $service=new ScriptSoapClient(null, array("location"=> $KERNELURL,"uri"=>"http://ws.apache.org/axis2","trace"=>true)); 
    $p[0]=new SoapParam((string)func_get_arg(0),"p1"); 
    $p[1]=new SoapParam((string)func_get_arg(1),"p2"); 
    for ($i=2; $i < $num-1;$i++) { 
     $param=func_get_arg($i); 
     if (is_array($param)) { 
      $data="||ARR||".implode("|",$param); 
     } else { 
      $data=$param; 
     } 
     $p[$i]=new SoapParam((string)$data,"p3"); 
    } 
    $p[$num-1]=new SoapParam((string)func_get_arg($num-1),"p4"); 
    try { 
     $result=$service->__soapCall("run",$p); 
    } catch (SoapFault $e) { 
     echo $e; 
     return "error"; 
    } 
    unset($service); 
    if (is_array($result)) { 
     return $result["return"]; 
    } else { 
     return $result; 
    } 
} 
$res2=runService("Service_addCostume","addCostume","costum1"); 
?> 

ici est mon erreur:

SoapFault exception: [HTTP] Unknown protocol. Only http and https are allowed. in C:\xampp\htdocs\Client_addCostume.php:4 Stack trace: 
    #0 C:\xampp\htdocs\Client_addCostume.php(4): SoapClient->__doRequest('__doRequest('__soapCall('run', Array) 
    #3 C:\xampp\htdocs\Client_addCostume.php(41): runService('Service_addCost...', 'addCostume', 'costum1') 
    #4 {main} 
+0

Essayez d'ajouter un 'http: //' 'avant $ KERNELURL' – aynber

Répondre

0

ajouter un http: // avant KERNELURL $