Клиент WSDL не работает

У меня есть wsdl:

<?xml version="1.0" encoding="UTF-8"?> 

  <wsdl:part element="impl:getIMIPremiumResponse" name="parameters"> </wsdl:part> 

  <wsdl:part element="impl:getIMIPremium" name="parameters"> </wsdl:part> 

  <wsdl:operation name="getIMIPremium"> <wsdl:input message="impl:getIMIPremiumRequest" name="getIMIPremiumRequest"> </wsdl:input> <wsdl:output message="impl:getIMIPremiumResponse" name="getIMIPremiumResponse"> </wsdl:output> </wsdl:operation> 

  <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="getIMIPremium"> <wsdlsoap:operation soapAction=""/> <wsdl:input name="getIMIPremiumRequest"> <wsdlsoap:body use="literal"/> </wsdl:input> <wsdl:output name="getIMIPremiumResponse"> <wsdlsoap:body use="literal"/> </wsdl:output> </wsdl:operation> 

  <wsdl:port binding="impl:IMIPremiumWebServiceSoapBinding" name="IMIPremiumWebService"> <wsdlsoap:address location="http://mysite.com/nsoap/IMIPremiumWebService.wsdl"/> </wsdl:port> 

И я хочу представить информацию, чтобы получить ответ. Я создал client.php, который выглядит следующим образом:

  <?php try{ $client = new SoapClient("http://mysite.com/nsoap/IMIPremiumWebService.wsdl"); $args= array("expiryDate"=>'25',"imiInsured"=>'N',"inceptionDate"=>'43',"noOfInsured"=>'23',"partnerCode"=>'21',"stateCode"=>'MP' ); $something = $client->getIMIPremium($args); echo $client->responseData; } catch (Exception $e) { print_r($e); } ?> 

Но в браузере отображается ошибка:

Объект SoapFault ([сообщение: protected] => SOAP-ERROR: Encoding: объект не имеет свойства «imiPolicy» [строка: исключение: private] => [code: protected] => 0 [файл: protected] => C: \ wamp \ www \ nsoap \ phpclient.php [строка: protected] => 8 [trace: Exception: private] => Array ([0] => Array ([file] => C: \ wamp \ www \ nsoap \ phpclient .php [line] => 8 [function] => __call [class] => SoapClient [type] => -> [args] => Array ([0] => getIMIPremium [1] => Array ([0] => Массив ([expiryDate] => 25 [imiInsured] => N [inceptionDate] => 43 [noOfInsured] => 23 [partnerCode] => 21 [stateCode] => MP)))) [1] => Массив ([file] => C: \ wamp \ www \ nsoap \ phpclient.php [line] => 8 [function] => getIMIPremium [class] => SoapClient [type] => -> [args] => Array ( [0] => Массив ([expiryDate] => 25 [imiInsured] => N [inceptionDate] => 43 [noOfInsured] => 23 [partnerCode] => 21 [stateCode] => MP)))) [previous: Exception: private] => [faultstring] => SOAP-ERROR: Кодирование: объект не имеет свойства «imiPolicy» [faultcode] => Клиент [ faultcodens] => http://schemas.xmlsoap.org/soap/envelope/ [xdebug_message] => (! ) SoapFault: SOAP-ERROR: Кодирование: объект не имеет свойства «imiPolicy» в C: \ wamp \ www \ nsoap \ phpclient.php в строке 8 Стек вызовов #TimeMemoryFunctionLocation 10.0010672312 {main} () .. \ phpclient.php: 0 20.0104698552SoapClient-> getIMIPremium () .. \ phpclient.php: 8)

Где я ошибаюсь? Каким должно быть решение для этого?

Редактировать :

Я создал файл php: client.php

  <?php require_once('nusoap.php'); $client = new nusoap_client('http://localhost/nsoap/IMIPremiumWebService.wsdl', True); $err = $client->getError(); if ($err) { // Display the error echo 'client construction error: ' . $err ; } else { $args= array("imiPolicy" => array("expiryDate" => "23-09-2013", "imiInsured" =>array("item" => array("item" => array("age"=>'23', "basicSumInsured"=>'33233', "coverRageType"=>'12',"dateOfBirth"=>'26-09-1986',"preExistingDisease" => 'no'))), "inceptionDate"=>"12-09-2009" ,"noOfInsured"=>'1',"partnerCode" => '2121', "stateCode" => '233')); $answer = $client->call('getIMIPremium', $args); $err = $client->getError(); if ($err) { // Display the error echo 'Call error: ' . $err; echo $client->response; //print_r($client->response); //print_r($client->getDebug()); } else { echo "*******************"; print_r($answer); } } ?> 

Но это порождает эту ошибку:

Ошибка вызова: ответ не типа text / xml: application / wsdl + xmlHTTP / 1.1 200 OK Дата: Вт, 17 Сен 2013 15:10:38 GMT Сервер: Apache / 2.2.22 (Win64) PHP / 5.3.13 Last- Изменено: Вт, 17 Сен. 2013 13:18:39 GMT ETag: "a0000000a818c-12e9-4e69428b54054" Диапазоны приема: байты Длина контента: 4841 Соединение: закрыть Content-Type: application / wsdl + xml

Согласно предложению, я добавил imiPolicy в $ args:

 $args= array("imiPolicy" => array("expiryDate" => "23-09-2013", "imiInsured" =>array("item" => array("item" => array("age"=>'23', "basicSumInsured"=>'33233', "coverRageType"=>'12',"dateOfBirth"=>'26-09-1986',"preExistingDisease" => 'no'))), "inceptionDate"=>"12-09-2009" ,"noOfInsured"=>'1',"partnerCode" => '2121', "stateCode" => '233')); 

Но теперь ошибка становится:

Объект SoapFault ([сообщение: protected] => Неверная версия [string: Exception: private] => [code: protected] => 0 [файл: protected] => C: \ wamp \ www \ nsoap \ phpclient.php [line : protected] => 10 [trace: Exception: private] => Array ([0] => Array ([файл] => C: \ wamp \ www \ nsoap \ phpclient.php [line] => 10 [function] => __call [class] => SoapClient [type] => -> [args] => Array ([0] => getIMIPremium [1] => Массив ([0] => Массив ([imiPolicy] => Массив ( [expiryDate] => 23-09-2013 [imiInsured] => Array ([item] => Array ([item] => Array ([age] => 23 [basicSumInsured] => 33233 [coverRageType] => 12 [ dateOfBirth] => 26-09-1986 [preExistingDisease] => no))) [inceptionDate] => 12-09-2009 [noOfInsured] => 1 [partnerCode] => 2121 [stateCode] => 233)))) ) [1] => Array ([file] => C: \ wamp \ www \ nsoap \ phpclient.php [line] => 10 [function] => getIMIPremium [класс] => SoapClient [type] => -> [args] => Array ([0] => Array ([imiPolicy] => Array ([expiryDate] => 23-09-2013 [imiInsured] => Array ([item] => Arr ay ([item] => Array ([age] => 23 [basicSumInsured] => 33233 [coverRageType] => 12 [dateOfBirth] => 26-09-1986 [preExistingDisease] => no))) [inceptionDate] = > 12-09-2009 [noOfInsured] => 1 [partnerCode] => 2121 [stateCode] => 233))))) [previous: Exception: private] => [faultstring] => Неверная версия [faultcode] => VersionMismatch [faultcodens] => http://schemas.xmlsoap.org/soap/envelope/ [xdebug_message] => (! ) SoapFault: неправильная версия в C: \ wamp \ www \ nsoap \ phpclient.php в строке 10 Call Stack #TimeMemoryFunctionLocation 10.0012674576 {main} () .. \ phpclient.php: 0 20.0184702744SoapClient-> getIMIPremium () .. \ phpclient .php: 10)

Как то, что было сказано ранее.

Ошибка окружает следующее:

 [xdebug_message] => ( ! ) SoapFault: SOAP-ERROR: Encoding: object has no 'imiPolicy' property in C:\wamp\www\nsoap\phpclient.php on line 8 Call Stack #TimeMemoryFunctionLocation 10.0010672312{main}( )..\phpclient.php:0 20.0104698552SoapClient->getIMIPremium( )..\phpclient.php:8 ) 

Давайте выделим это отдельно:

OAP-ERROR: Кодирование: объект не имеет свойства «imiPolicy» в C: \ wamp \ www \ nsoap \ phpclient.php в строке 8 Стек вызовов #TimeMemoryFunctionLocation 10.0010672312 {main} () .. \ phpclient.php

и это сводится к:

C: \ wamp \ www \ nsoap \ phpclient.php в строке 8 Стек вызовов #TimeMemoryFunctionLocation 10.0010672312 {main} () .. \ phpclient.php

Есть ли строка / настройка в файле php для: 'imiPolicy'

Я думаю, что как только это будет установлено, вы должны быть добрыми.

Надеюсь это поможет.

Кент