コードの簡単なバージョンを作成しました。エラーは発生しませんが、単に機能しません。(PHPでSoapを有効にしています)
関数付きクラス:(Metodo.php)
class Teste {
/*
* @return string
*/
function SayHello() {
return "Hello, WORLD";
}
}
サーバー:(Server.php)
<?php
require_once('Metodo.php');
if($_SERVER['QUERY_STRING'] == "wsdl") {
try {
require_once('Zend/Soap/AutoDiscover.php');
$wsdl = new Zend_Soap_AutoDiscover();
$wsdl->setClass('Teste');
$wsdl->handle();
}catch(exception $e) {
echo $e->getMessage();
}
} else {
$wsdl_url = sprintf('http://%s%s?wsdl', $_SERVER['HTTP_HOST'], $_SERVER['SCRIPT_NAME']);
require_once('Zend/Soap/Server.php');
$server = new SoapServer($wsdl_url);
$server->setClass('Teste');
$server->handle();
}
?>
クライアント:(Client.php)
<?php
require_once('Zend/Soap/Client.php');
$wsdl_url = "http://localhost:8090/WebService/Server.php?wsdl";
$client = new Zend_Soap_Client($wsdl_url);
try {
echo $client->SayHello();
echo ":)";
} catch (SoapFault $e) {
echo $e->getMessage();
}
?>
「:)」を出力するだけで、エラーは発生しませんが、SayHello()メソッドは呼び出されません。誰かが私を助けてくれたら、私はとても感謝しています。本当に。どうもありがとう。