2013-12-16 4 views
1

Я новичок в wsdl, nusoap-коде. Я пытаюсь реализовать простую программу программирования hello, используя Nousoap. Я реализовал код в Север wsdl_hello_server.php, кодКод Nusap не работает должным образом

<?php 

require_once('nusoap.php'); 
    $server = new soap_server(); 
    $server->register('hello'); 

function hello($name) { 
    return 'Hello, ' . $name; 
} 

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

?> 

и клиент сохранен в файле wsdl_hello_client.php,

<?php 

require_once('nusoap.php'); 


$client = new soapclient('http://localhost:8888/nousoap_example/wsdl_hello_server.php'); 



$result = $client->call('hello', array('name' => 'world')); 


print_r($result); 
?> 

Когда я запускаю клиента, то это не даст никакого результата (пустая страница). И если я попытаюсь запустить код сервера, он даст мне,

<SO`AP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> 
    <SOAP-ENV:Body> 
     <SOAP-ENV:Fault> 
      <faultcode xsi:type="xsd:string">SOAP-ENV:Client</faultcode> 
      <faultactor xsi:type="xsd:string"/> 
       <faultstring xsi:type="xsd:string">method '' not defined in service</faultstring> 
       <detail xsi:type="xsd:string"/> 
     </SOAP-ENV:Fault> 
     </SOAP-ENV:Body> 
    </SOAP-ENV:Envelope>` 

Забыл что-нибудь ?? пожалуйста помогите ??

NB: Я включил 'nusoap.php' в той же папке

ответ

0

Моя догадка $ HTTP_RAW_POST_DATA не установлен; поэтому вы отправляете '' на ваш $server->service(), а '' - это не существующая функция. Попробуйте отладить ваши $ HTTP_RAW_POST_DATA.

Также вы можете отлаживать клиент и сервер, добавив:

// Display the request and response 
echo '<h2>Request</h2>'; 
echo '<pre>' . htmlspecialchars($client->request, ENT_QUOTES) . '</pre>'; 
echo '<h2>Response</h2>'; 
echo '<pre>' . htmlspecialchars($client->response, ENT_QUOTES) . '</pre>'; 

Как со страницы, вы, вероятно, приняты крайне устаревший примером с.

0

Вы можете попробовать добавить WSDL в конце URL, как:

$client = new soapclient('http://localhost:8888/nousoap_example/wsdl_hello_server.php?wsdl'); 
+0

все еще не работает :( – omrehman

Смежные вопросы