Napolsky
@Napolsky

php SOAP Extension

Начинаю постигать SOAP, наткнулся на такую проблему: при попытке обращения к соап функции выскакивает фатал еррор Uncaught SoapFault exception: [VersionMismatch] Wrong Version. Ниже приведен код примера.

$client = new SoapClient(
'http://new.starliner.ru/modules/trains/soap/test.wsdl',
array(
'features' => SOAP_SINGLE_ELEMENT_ARRAYS,
)
);

$result = $client->trainRoute(array('day'=>'12', 'month' => '12', 'train' => '066А'));


Гугл показал что проблема такая возникает часто, а решения так и не дал.
Так в чем же соль?
  • Вопрос задан
  • 6843 просмотра
Решения вопроса 1
@galaxy
Блин, господа пхп-программеры, научитесь пользоваться собственными инструментами разработки.

$client = new SoapClient(
  'http://new.starliner.ru/modules/trains/soap/test.wsdl',
  array(
    'features' => SOAP_SINGLE_ELEMENT_ARRAYS,
    'trace' => 1
  )
);

try {
  $result = $client->trainRoute(array('day'=>'12', 'month' => '12', 'train' => '066А'));
} catch (Exception $e) {
  print $e->getMessage() ."\n";

  print $client->__getLastRequest();

  print $client->__getLastResponse();
}


Wrong Version

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:Ufs" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:TrainRoute><from xsi:type="ns1:ufsTrainRoute"><day xsi:type="xsd:string">12</day><month xsi:type="xsd:string">12</month><train xsi:type="xsd:string">066А</train></from></ns1:TrainRoute></SOAP-ENV:Body></SOAP-ENV:Envelope>




            <html>
                <body>
                    <pre style="border: 1px solid black; padding: 8px; background-color: whitesmoke;">
                        Ошибка 5027: Starliner: Метод "test" в контроллере "SOAP" не найден
                    </pre>
                </body>
            </html>


Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
bigdogsru
@bigdogsru
Похоже, соль в том, что версия расширения не соответствует версии PHP.
А php -m в консоли ни на что не ругается?
Ответ написан
Комментировать
@Nc_Soft
переустановите рассширение
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы