forum.bitel.ru http://forum.bitel.ru/ |
|
[FYI] Нюансы DynamicTariffTreeNode (CRM) http://forum.bitel.ru/viewtopic.php?f=19&t=11985 |
Страница 1 из 1 |
Автор: | Cromeshnic [ 06 окт 2016, 12:41 ] |
Заголовок сообщения: | [FYI] Нюансы DynamicTariffTreeNode |
Наткнулся на интересную штуку. Повадились пилить собственные узлы тарифных деревьев для модуля Phone: пакеты трафика, фильтры по карте зон для А-номера и т.п. Решили, мол, зачем мы будем делать все в jar-ках. Давайте добавим в phone.xml узел "Обработчик" из Inet и будем писать все новые узлы через дин код. Написали узел, проверяющий по карте зон, что A и B - номера находятся в одной зоне (позволит собрать один универсальный тариф на местную связь для разных городов). Проверили - работает. Потом решил заодно установить направление в этом же узле: Код: if (zdrFrom.zoneId > 0 && zdrFrom.zoneId == zdrTo.zoneId) { //Добавляем установку направления, если заходим в узел if (zdrTo.destId > 0) { req.dest = zdrTo.destId; } if(logger.isDebugEnabled()) { logger.debug("Номера в одной зоне"); } return 1; } - процессы-обработчики молча умирают на строчке Код: req.dest = zdrTo.destId; Происходит так, судя по всему, от того, что поле dest - protected. И несмотря на то, что наш класс в динкоде находится в том же package, что и AbstractPhoneTariffRequest, он не считает их "соседними", т.к. они в JVM грузятся разными classloader-ами. Вот и гугл выдал: http://stackoverflow.com/questions/1046 ... ferent-jar (там в названии написано про different jar, но в тексте говорится, что ещё и classloader-ы разные). Такие пироги. Полезно знать, что новым узлом "обработчик" можно писать только простые узлы-фильтры, не меняющие TariffRequest. Либо, как мне тут подсказывают java-гуру, пользоваться рефлексией. |
Автор: | Cromeshnic [ 06 окт 2016, 12:44 ] |
Заголовок сообщения: | Re: [FYI] Нюансы DynamicTariffTreeNode |
... либо просить разработчиков, чтобы меняли protected на public ![]() |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |