非常に奇妙な SOAP の問題
新しくインストールされたシステムでは、Apache ルート ディレクトリは /var/www/html の下にあります。
phpclient.php コード:
ini_set('display_errors' , 1 );
error_reporting(E_ALL);
$soap = new SoapClient("http://localhost/soap.wsdl");
var_dump ( $soap->__getFunctions () );
echo $soap->Add(1,2);
?>
soap.php コード:
クラスサービス
{
public function HelloWorld()
{
return "Hello";
}
public function Add($a,$b)
{
return $a+$b ;
}
}
$server=new SoapServer("http://localhost/soap.wsdl",array('soap_version' => SOAP_1_2));
$server-> setClass( "service");
$server->handle();
?>
soap.wsdl コード:
< ;定義 name="myservice" targetNamespace="urn:myservice" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl /soap /" xmlns:tns="urn:myservice" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap /encoding /" xmlns="http://schemas.xmlsoap.org/wsdl/">
< portType name="myservicePort">
<入力メッセージ="tns:HelloWorldRequest" />
<出力メッセージ="tns:HelloWorldResponse" / >
<入力メッセージ="tns:AddRequest" />
<出力メッセージ="tns: AddResponse" />
<オペレーション名="HelloWorld">
<メッセージ名="HelloWorldRequest">
メッセージ>
<メッセージ名="HelloWorldResponse" "> ;
<パーツ名 ="a" type="xsd:string" />
<パーツ名="b" type="xsd:string" />
メッセージ>
< message name ="AddResponse">
ゲームが開始します。soap.wsdl を /var/www/html/wsdl フォルダーに置きます。元の「http://localhost/soap.wsdl」は「http://localhost/wsdl/soap.wsdl」です。 「致命的エラー: キャッチされない SoapFault 例外: [HTTP] が見つかりません」というエラーが報告される理由はわかりますか? パスは正しいですか?