こんにちはnusoapサーバーにこのコードを使用していますが、Webブラウザーでサーバーを呼び出すと、「このサービスはWebの説明を提供しません」というメッセージが表示されます
<?
//call library
require_once ('lib/nusoap.php');
//using soap_server to create server object
$server = new soap_server;
//register a function that works on server
$server->register('hello');
// create the function
function hello($name)
{
if(!$name){
return new soap_fault('Client','','Put your name!');
}
$result = "Hello, ".$name;
return $result;
}
// create HTTP listener
$server->service($HTTP_RAW_POST_DATA);
exit();
?>
ヘルプ...
コードを次のように変更してください:
<?php
//call library
require_once('nusoap.php');
$URL = "www.test.com";
$namespace = $URL . '?wsdl';
//using soap_server to create server object
$server = new soap_server;
$server->configureWSDL('hellotesting', $namespace);
//register a function that works on server
$server->register('hello');
// create the function
function hello($name)
{
if (!$name) {
return new soap_fault('Client', '', 'Put your name!');
}
$result = "Hello, " . $name;
return $result;
}
// create HTTP listener
$server->service($HTTP_RAW_POST_DATA);
exit();
?>
名前空間を定義しませんでした。
こちらの簡単な例をご覧ください:-
http://patelmilap.wordpress.com/2011/09/01/soap-simple-object-access-protocol/
WebブラウザーがWebサービスを呼び出していません-PHP clientを作成できます:
// Pull in the NuSOAP code
require_once('lib/nusoap.php');
// Create the client instance
$client = new soapclient('your server url');
// Call the SOAP method
$result = $client->call('hello', array('name' => 'StackOverFlow'));
// Display the result
print_r($result);
これはHello, StackOverFlow
更新
WSDLを作成するには、以下を追加する必要があります。
$server->configureWSDL(<webservicename>, <namespace>);
Nusoap_clientを使用することもできます
<?php
// Pull in the NuSOAP code
require_once('lib/nusoap.php');
// Create the client instance
$client = new nusoap_client('your server url'); // using nosoap_client
// Call the SOAP method
$result = $client->call('hello', array('name' => 'Pingu'));
// Display the result
print_r($result)
?>