forum.bitel.ru http://forum.bitel.ru/ |
|
6.2 вызов перегруженных сервисов http://forum.bitel.ru/viewtopic.php?f=19&t=12471 |
Страница 1 из 1 |
Автор: | fmaks [ 24 май 2017, 17:37 ] |
Заголовок сообщения: | 6.2 вызов перегруженных сервисов |
Здравствуйте. Есть такой вопрос: Имеется dynservice, перегружающий стандартный ContractService, всё прописано в конфиге и давно прекрасно работает, недавно появилась необходимость вызвать этот сервис из дин.кода. Делаю: Код: ... private ContractService cs; ... ServerContext context = ServerContext.get(); cs = context.getService( ContractService.class , 0 ); ... Однако при вызове методов сервиса выясняется, что сервис стандартный, не перегруженный. Конечно, вот такой вариант решает проблему: Код: ... private ContractServiceImpl cs; ... ServerContext context = ServerContext.get(); cs = context.getService( ContractServiceImpl.class , 0 ); ... где ContractServiceImpl - уже моя реализация сервиса. ContractService - интерфейс, и не должен ли при вызове в первом куске кода context.getService( ContractService.class , 0 ) возвращаться перегруженный сервис? Может я просто не понимаю тонкости в java, но не будет ли вызван также не перегруженный сервис если в самом коде bg есть context.getService( ContractService.class , ... ) и не получатся ли при этом непредсказуемые результаты (в плане того, что стандартный сервис не реализует того, что требуется нам)? Вот какой-то такой вопрос. |
Автор: | dimOn [ 25 май 2017, 02:26 ] |
Заголовок сообщения: | Re: 6.2 вызов перегруженных сервисов |
dynservice - это всего лишь костыль, который работает исключительно внутри /[web]executer и подменяет один класс другим при вызове через url. он не заменяет и никак не относится к оригинальному классу, и конечно не будет вызываться вместо изначального при прямом обращении из любых других мест |
Автор: | fmaks [ 25 май 2017, 17:36 ] |
Заголовок сообщения: | Re: 6.2 вызов перегруженных сервисов |
Всё, спасибо! Исчерпывающий ответ Значит проблем не каких быть и не должно. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |