PHP プログラムから Java SOAP Web サービスをリクエストしています。私のコードは次のようなものです
<?php
$options = array('features' =>
SOAP_USE_XSI_ARRAY_TYPE + SOAP_SINGLE_ELEMENT_ARRAYS);
try{
$sClient = new SoapClient('http://192.168.1.101:8080/person/Person.wsdl');
// $sClient = new SoapClient('http://192.168.1.11:8080/DNAHMS/webservice/onlineBooking/Hotel.wsdl',$options);
//$params = array('Id'=> '1');
echo "<pre>";
print_r($sClient->__getFunctions());
echo "</pre>";
$parms = array("Id"=>1);
$response = $sClient->__call('getPerson',$parms);
echo "<pre>";
print_r($response);
echo "</pre>";
} catch(SoapFault $e){
echo "<pre>";
var_dump($e);
echo "<pre>";
}
?>
ここで私はPerson.wsdlで、ブラウザに直接呼び出すとエラーは発生せず、これは有効なxmlファイルです。これを実行すると、以下のような SOAP エラーが発生します。
cvc-complex-type.4: 属性「Id」は要素「ns1:GetPersonRequest」に表示する必要があります