RESTful Веб-сервис Интер-Методы связи - PullRequest
0 голосов
/ 04 октября 2018

У меня есть 2 веб-службы (WSa) & (WSb) ...

Веб-служба (WSa) будет вызывать метод (Mx) веб-службы (WSb) ...

Веб-служба (WSb) собирается уведомить пользователя (U1) об ответе на определенный вопрос (Q1) ...

Пользователь (U1) ответит (WSb), вызвав другой метод (Мой) и передача ответа ...

Теперь, как (WSb) может ответить на исходный запрос (WSa)?!

Другими словами, как может метод (Mx)ждать, пока пользователь (U1) вызовет метод (My), прежде чем он отправит свой ответ обратно в службу (WSa)?!

Я попытался определить статическое логическое поле (sem) внутри (WSb), которое может работатькак семафор.Таким образом, после уведомления пользователя о вводе, метод (Mx) зациклится до степени sem = true.Когда пользователь (U1) вызывает метод (My) и предоставляет свой ответ, для sem возвращается значение false, чтобы метод (Mx) мог продолжить выполнение и ответить обратно на службу (WSa).Однако приложение вылетает.Я думаю, что это не правильный способ иметь дело с веб-сервисами.

Так что вы предлагаете иметь в виду, что я не могу изменить сервис (WSa).Я могу играть только с (WSb) и его методами RESTful?!

Пожалуйста, см. Прилагаемую диаграмму последовательности: enter image description here

1 Ответ

0 голосов
/ 04 октября 2018

IMO, обрабатывать асинхронное выполнение лучше, чем заставлять поток ждать выполнения кода (это еще хуже в случае вмешательства пользователя).

Вы можете сгенерировать уникальный идентификатор для каждого запроса от WSa и отправитьасинхронный обратный вызов из WSb вместе с идентификатором и ответом вместе после завершения.

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