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/