как определить, работает ли мыльный веб-сервис или нет и как реагировать соответственно? - PullRequest
1 голос
/ 17 сентября 2010

Если приложение в значительной степени полагается на веб-службы SOAP для извлечения данных и построения страниц на основе полученных данных, как лучше всего определить и обработать их, если мыльный веб-сервис не работает?

Возможно ли, чтобы WSDL был доступен, но веб-служба не работает? Мне сказали, что это возможно.

История, чтобы понять проект и мои проблемы:

  • Это приложение было создано, потому что у нас есть сторонний поставщик service-now.com, который предоставляет нам управление ИТ.
  • Проблема в том, что веб-интерфейс службы сейчас недоступен, и мы не можем предоставить недоступную услугу нашим конечным пользователям. Как только мы узнали о положениях их веб-сервисов, я полностью перестроил модуль самообслуживания, теперь в php, используя мыло и взаимодействуя с их веб-сервисами для выполнения CRUD для своих данных. Таким образом, мы получаем интерфейс, который выглядит лучше и доступнее.

Хотя мое беспокойство заключается в том, что делать и как правильно обрабатывать ошибки, когда веб-служба не работает.

Я кодировал интерфейс, определяющий все взаимодействие с веб-сервисом, и я кодировал клиентский класс, который реализует этот интерфейс. Все методы в классе клиента находятся в пределах try / catches, поэтому я знаю, когда что-то пошло не так с запросом данных или извлечением данных из этого веб-сервиса.

Но как насчет упреждающей проверки, чтобы увидеть, не работает ли веб-служба, прежде чем предоставить пользователю страницу входа. Это то, что я действительно хочу получить.

Ответы [ 2 ]

1 голос
/ 17 сентября 2010

Для веб-сервисов SOAP нередко используется метод beatbeat.

Этот метод не обрабатывает, но возвращает определенное значение.

Существует несколько дискуссий о том, что этот метод долженбыть и что он должен вернуть.Вы можете проверить эту ссылку для некоторых опций

Если ваш вызов метода heartbeat службы дает вам это значение, то служба работает и работает, в противном случае возникает проблема с подключением куслуга / сервис не работает.

1 голос
/ 17 сентября 2010

Единственный способ определить, что это не так - это сделать запрос.Если он только извлекает данные, но не изменяет их и часто извлекает одни и те же данные, вы можете кэшировать возврат (владельцу веб-службы может даже понравиться это) и обслуживать его, когда сервер недоступен / запрос не выполнен.

Сервер может быть недоступен, когда доступен wsdl, он может даже выводить сообщения об ошибках SOAP, не относящиеся к вашему запросу, если что-то не так на сервере и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...