Ошибки PHP SOAP-клиента и SOAP-сервера
У меня есть веб-сервер, который действует как клиент SOAP для связи со сторонним сервером SOAP. Мой клиент реализован на PHP с использованием php::soapclient.
Каков наилучший способ убедиться, что сервер SOAP работает, чтобы я мог предоставить клиентскому браузеру сайт в противном случае, если сервер SOAP не работает или не отвечает, информируя пользователя о том, что служба в данный момент недоступна?
Система, по существу, обеспечивает гибридную обработку сторонних сервисов, предлагаемых с использованием связи клиент / сервер SOAP, для отображения данных в браузере и позволяет пользователям взаимодействовать со сторонней системой.
2 ответа
Хорошо... однажды я работал с мыльным сервером php и клиентом мыла php. Я думаю, что когда клиент вызывает сервис, он проходит через wsdl и, если есть проблема во время соединения (или даже выполнения) на стороне сервера, ответом клиента будет объект SoapFault.
$resp = $this->client->__soapCall($serviceName,$serviceParams);
if (get_class($resp)=="SoapFault"){
throw new Exception("Webservice error - Message: ".$resp->faultstring);
}
Вы можете вызвать http://server:1234/foo/bar?wsdl и, если вы получите WSDL, запустить фактический запрос SOAP.
Если приложение не работает, вы, вероятно, не получите WSDL, и если это только часть службы, которая заставляет его зависать, вы ничего не можете сделать, чтобы обнаружить его заранее в любом случае.