2017-01-07 10 views
1

Создание веб-службы (мой сервер - ubuntu vm, не использующий WAMP или XAMPP), но имеющий проблему = Исключение: похоже, что у нас нет XML-документа. Я обыскал интернет, но для этого есть главным образом исключения для мыла, но у меня нет мыльной ошибки. Это простое исключение. Это эхо hi, но не эхо hi4, поэтому я думаю, проблема может быть в функции viewHealthDetails (которая находится в моем wsdl), но я почти уверен, что мой wsdl верен, поскольку я использовал его ранее в другом проекте. Пожалуйста помоги.Исключение веб-службы: XML-документ

if(isset($_POST['txtInput'])) 
{ 
    try 
    { 

    $input=$_POST['txtInput']; 

    $wsdl='.../Search.wsdl'; 
    $options=array('cache_wsdl'=>WSDL_CACHE_NONE,'features'=>SOAP_SINGLE_ELEMENT_ARRAYS); 

    $client=new SoapClient($wsdl,$options); 
echo "hi"; 

    $response=$client->viewHealthDetails($input); 

    echo "hi4"; 
    if(isset($response->HealthDetails)) 
    { 

     $HTMLDocument="<!Doctype html> 
     // My html code 

    } 
    else 
    { 
     echo "<h1>This Health type is not in our categories!</h1>"; 
    } 
} 
catch(Exception $e) 
{ 

    echo 'Exception:'.$e->getmessage(); 


} 
catch (SOAPFAULT $exception) 
{ 
    echo 'SOAP Exception: '.$exception->getMessage(); 
} 
} 

    else 
    { 
    } 

ответ

0

Эта ошибка возникает из-за того, что PHP не может обработать ответ XML правильно. Чтобы устранить ответ, установить массив опций для:

$options=array('cache_wsdl'=>WSDL_CACHE_NONE,'features'=>SOAP_SINGLE_ELEMENT_ARRAYS, 'trace' => 1);

затем использовать var_dump($client->__getLastResponse()); после выполнения запроса. Это позволит вам проверить возвращенный XML и проверить его правильность. Вы можете обнаружить, что есть другой выход, который нарушает XML.

+0

Получение NULL и все еще исключение –

+0

Затем вы обнаружили причину исключения - вы не получаете ответа XML от веб-службы, вместо этого получаете пустой ответ NULL. Вы также можете попробовать использовать инструмент SoapUI для дублирования вызова и подтвердить, что веб-служба ничего не возвращает. –