2013-07-14 3 views
-1

это мой NuSOAP код сервера PHP:заброс исключения в NuSOAP сервере

<?PHP 
function Test($name = '') 
{ 
    if(empty($name)) 
    { 
     throw new SoapFault('-1' , 'Error !'); 
    } 
    return $name; 
} 

$WS = new nusoap_server; 
$WS->configureWSDL('WebService', 'urn:WebService'); 
$WS->wsdl->schemaTargetNamespace = 'urn:WebService'; 
$WS->soap_defencoding = 'UTF-8'; 
$WS->decode_utf8 = false; 

$WS->register(
    'Test',      
    array('name' => 'xsd:string'), 
    array(
     'return' => 'xsd:string' 
    ), 
    'urn:WebService', 
    'urn:WebService#Test', 
    'rpc', 
    'encoded', 
    'Test Function' 
); 

$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ''; 
$WS->service($HTTP_RAW_POST_DATA); 
?> 

и это мой клиент код PHP:

<?PHP 
$S = new SoapClient('http://localhost/server.php'); 
try { 
    echo $S->Test(''); 
} catch(SoapFault $s) 
{ 
    echo '<pre dir="ltr">'; 
    print_r($s->getMessage()); 
    echo '</pre>'; 
} 
?> 

почему выход моего клиента: looks like we got no XML document?

я хочу бросить исключение и посмотреть Error !

где моя проблема?

ответ

2

решаемые редактирования сервера кода PHP и заменить:

throw new SoapFault('-1' , 'Error !'); 

в

return new soap_fault('-1', '', 'Error !','');