BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 29 мар 2024, 06:31

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: 6.2 вызов перегруженных сервисов
СообщениеДобавлено: 24 май 2017, 17:37 
Не в сети

Зарегистрирован: 20 окт 2016, 00:34
Сообщения: 82
Карма: 0
Здравствуйте. Есть такой вопрос:
Имеется 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 , ... ) и не получатся ли при этом
непредсказуемые результаты (в плане того, что стандартный сервис не реализует того, что требуется нам)?
Вот какой-то такой вопрос.

_________________
Клиент: вер. 7.1.206 / 15.08.2019 22:37:24
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_181
Сервер: вер. 7.1.1144 / 15.08.2019 22:39:22
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_181


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 25 май 2017, 02:26 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
dynservice - это всего лишь костыль, который работает исключительно внутри /[web]executer и подменяет один класс другим при вызове через url. он не заменяет и никак не относится к оригинальному классу, и конечно не будет вызываться вместо изначального при прямом обращении из любых других мест

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 25 май 2017, 17:36 
Не в сети

Зарегистрирован: 20 окт 2016, 00:34
Сообщения: 82
Карма: 0
Всё, спасибо! Исчерпывающий ответ :)
Значит проблем не каких быть и не должно.

_________________
Клиент: вер. 7.1.206 / 15.08.2019 22:37:24
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_181
Сервер: вер. 7.1.1144 / 15.08.2019 22:39:22
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_181


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
POWERED_BY
Русская поддержка phpBB
[ Time : 0.101s | 24 Queries | GZIP : On ]