Flex WebService invokeAllPending никогда не вызывается - PullRequest
0 голосов
/ 03 апреля 2012

Я уже некоторое время использую классы WebService и Operation Flex Framework, и после некоторых взлетов и падений (больше взлетов и падений, ха-ха) я нахожусь в процессе рефакторинга всех его применений с помощью некоторых служебных классов / оболочек.

После просмотра небольшого количества кода mx.rpc.soap.Operation я заметил, что когда вы используете метод "send", а веб-служба не готова, вызов помещается в очередь во внутренний массив (pendingInvocations:Массив в строке 1142).Но забавно то, что вызовы в очереди больше никогда не вызываются.

Это ошибка или я что-то не так делаю?

Я думаю о расширении mx.rpc.soap.Operation, переопределение «send» и тестирование, если есть вызовы в очереди, вызов invokeAllPending (метод mx_internal, который извлекает все вызовы из очереди).так что я не знаю, собирается ли Adobe изменить это в ближайшее время.

Любой совет?

Заранее спасибо

1 Ответ

1 голос
/ 04 апреля 2012

Это не ошибка.Взгляните на определение для AbstractWebService;он определяет метод с именем unEnqueueCalls (который находится прямо вверху списка неуклюжих имен методов, которые я видел :)).Этот метод перебирает все операции в веб-сервисе и вызывает ожидающие вызовы для каждой операции, вызывая найденный вами метод invokeAllPending.

unEnqueueCalls сам вызывается из класса WebService в *Методы 1008 * и wsdlHandler, один из которых запускается по завершении загрузки WSDL.

Итак, все учитывается;вам не нужно ничего переопределять.

...