BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 16 июн 2025, 03:23

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




Начать новую тему Ответить на тему  [ Сообщений: 22 ] 
Автор Сообщение
СообщениеДобавлено: 26 дек 2013, 03:18 
Не в сети
Клиент

Зарегистрирован: 21 сен 2009, 13:01
Сообщения: 835
Откуда: Москва
Карма: 15
Подскажите, что я не так делаю.
написан собственный класс дин кода:
Код:
package scripts.kernel.bonusOnPaymentHelper;
...

public class activationBonusChecker extends EventScriptBase<TariffOptionDeactivatedEvent> {
@Override
   public void onEvent(TariffOptionDeactivatedEvent event, Setup setup,   ConnectionSet connectionSet)
   throws Exception {
...
         }
}

создан скрипт поведения, к нему добавлен этот класс с событием "Деактивированна тарифная опция"
добавляю опцию на договор и тут же срабатывает этот скрипт поведения, не дожидаясь, когда будет деактивирована опция.
в лог вываливается:
Код:
EXCEPTIONS:
java.util.concurrent.ExecutionException: java.lang.Exception: java.lang.ClassCastException: ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent cannot be cast to ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionDeactivatedEvent
   at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:232)
   at java.util.concurrent.FutureTask.get(FutureTask.java:91)
   at ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener$ThreadedScriptEventListener.runScriptImpl(DynamicScriptEventListener.java:267)
   at ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener.runScript(DynamicScriptEventListener.java:149)
   at ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener.notify(DynamicScriptEventListener.java:117)
   at ru.bitel.bgbilling.kernel.event.AbstractConsumer.notify(AbstractConsumer.java:344)
   at ru.bitel.bgbilling.kernel.event.Consumer.notify(Consumer.java:1)
   at ru.bitel.bgbilling.kernel.event.Consumer.onMessage0(Consumer.java:112)
   at ru.bitel.bgbilling.kernel.event.Consumer$EventListenerRunnable.runImpl(Consumer.java:51)
   at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86)
   at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
   at java.lang.Thread.run(Thread.java:662)
   at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40)
Caused by: java.lang.Exception: java.lang.ClassCastException: ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent cannot be cast to ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionDeactivatedEvent
   at ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener.runScriptImpl(DynamicScriptEventListener.java:200)
   at ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener$ThreadedScriptEventListener.access$0(DynamicScriptEventListener.java:1)
   at ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener$ThreadedScriptEventListener$1.call(DynamicScriptEventListener.java:254)
   at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
   at java.util.concurrent.FutureTask.run(FutureTask.java:138)
   ... 4 more
Caused by: java.lang.ClassCastException: ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent cannot be cast to ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionDeactivatedEvent
   at scripts.kernel.bonusOnPaymentHelper.activationBonusChecker.onEvent(activationBonusChecker.java:28)
   at ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener.runScriptImpl(DynamicScriptEventListener.java:196)
   ... 8 more

почему собственно говоря ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent? если я указал событие другое. ну и когда опция действительно деактивируется (т.е. истекает время её действия) ничего не происходит. что я не так понял?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 26 дек 2013, 03:52 
Не в сети
Клиент

Зарегистрирован: 21 сен 2009, 13:01
Сообщения: 835
Откуда: Москва
Карма: 15
перезагрузил сервер,даталоадер,шедулер.
добавляю опцию. вообще ничего не происходит. ни при активации, ни при деактивации опции. решил поменять событие на "Ативирована/рактивирована тарифная опция" (раньше, именно её ставил, когда начинал тестировать класс), в итоге в лог падает:
Код:
12-26/01:47:09 DEBUG [event-proc-p-2-t-1] EventProcessor - Add ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener$ThreadedScriptEventListener@d to BG.Event.ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent

меняю обратно на "Деактивирована тарифная опция":
Код:
12-26/01:47:24 DEBUG [event-proc-p-2-t-1] EventProcessor - Updated listener ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener$ThreadedScriptEventListener@d to BG.Event.ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionDeactivatedEvent

активирую опцию:
Код:
12-26/01:47:50  INFO [event-proc-p-2-t-1] ScriptEventListener - Caught event: ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent
12-26/01:47:50 ERROR [event-proc-p-2-t-1] ScriptEventListener - Eval error: java.lang.Exception: java.lang.ClassCastException: ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent cannot be cast to ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionDeactivatedEvent
java.util.concurrent.ExecutionException: java.lang.Exception: java.lang.ClassCastException: ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent cannot be cast to ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionDeactivatedEvent
Caused by: java.lang.Exception: java.lang.ClassCastException: ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent cannot be cast to ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionDeactivatedEvent
Caused by: java.lang.ClassCastException: ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent cannot be cast to ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionDeactivatedEvent
12-26/01:47:50 ERROR [event-proc-p-2-t-1] ScriptEventListener - java.util.concurrent.ExecutionException: java.lang.Exception: java.lang.ClassCastException: ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent cannot be cast to ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionDeactivatedEvent
Caused by: java.lang.Exception: java.lang.ClassCastException: ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent cannot be cast to ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionDeactivatedEvent
Caused by: java.lang.ClassCastException: ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent cannot be cast to ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionDeactivatedEvent

что за беда?
Код:
 Сервер: вер. 6.0 сборка 1620 от 06.11.2013 18:01:46


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 26 дек 2013, 04:13 
Не в сети
Клиент

Зарегистрирован: 21 сен 2009, 13:01
Сообщения: 835
Откуда: Москва
Карма: 15
ну и собственно, когда меняю в коде TariffOptionDeactivatedEvent на TariffOptionActivatedEvent то он успешно запускается и отрабатывает на события "Активирована/реактивирована тарифная опция" и событие "Деактивирована тарифная опция"


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 26 дек 2013, 15:51 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
тема называется " деактивации тарифной опции"

а класс называется "activationBonusChecker" с событием "TariffOptionDeactivatedEvent"

при вызове класса приходит событие "TariffOptionActivatedEvent"....

так вы что хотите то в итоге АКТИВИРОВАТЬ или ДЕАКТИВИРОВАТЬ?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 26 дек 2013, 17:15 
Не в сети
Клиент

Зарегистрирован: 21 сен 2009, 13:01
Сообщения: 835
Откуда: Москва
Карма: 15
я хочу чтобы при ДЕАКТИВАЦИИ (по событию TariffOptionDeactivatedEvent) запускалось
Код:
package scripts.kernel.bonusOnPaymentHelper;
...

public class activationBonusChecker extends EventScriptBase<TariffOptionDeactivatedEvent> {
@Override
   public void onEvent(TariffOptionDeactivatedEvent event, Setup setup,   ConnectionSet connectionSet)
   throws Exception {
...
         }
}

сейчас это выглядит вот так:
Вложение:
1.jpg
1.jpg [ 16.84 КБ | Просмотров: 9027 ]

то как называется класс играет принципиальную роль на то как оно будет работать?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 26 дек 2013, 17:35 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
вы один и тот же скрипт привязываете на два события?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 26 дек 2013, 17:41 
Не в сети
Клиент

Зарегистрирован: 21 сен 2009, 13:01
Сообщения: 835
Откуда: Москва
Карма: 15
нет, я привязывают один скрипт на одно событие. просто пробовал и на Активацию/Реактивацию (меняя в коде соответственно на TariffOptionActivatedEvent), и на Деактивацию (с TariffOptionDeactivatedEvent).
c Активацией/Реактивацией код срабатывает, с Деактивацией код не работает, потому что оно запускается не по событию деактивации, а по событию Активации/Реактивации.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 26 дек 2013, 19:20 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
не надо пробовать, там куча кешей...
попробуйте один скрипт для одного события и второй скрип для другого


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 26 дек 2013, 22:48 
Не в сети
Клиент

Зарегистрирован: 21 сен 2009, 13:01
Сообщения: 835
Откуда: Москва
Карма: 15
ок. удаляем этот скрипт поведения. останавилваем activemq,server,dataloader,scheduler. стартуем их.
создаем новый скрипт поведения с событием "Деактивация опции". Активируем опцию на договоре. Ждём деактивации. в логах выполнения пусто. в логах сервера такого события не было.
лог сервера с момента рестарта:
Код:
[root@billing server]# cat server.script.log | grep "TariffOption"
12-26/20:32:25 DEBUG [main] EventProcessor - Add Function [id:5; title:Синхронизация TV - 1] to BG.Event.ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent
12-26/20:32:25 DEBUG [main] EventProcessor - Updated listener Function [id:5; title:Синхронизация TV - 1] to BG.Event.ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent
12-26/20:32:26 DEBUG [main] ScriptEventListener - Add empty listener to BG.Event.ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionDeactivatedEvent
12-26/20:32:26 DEBUG [main] EventProcessor - Add EmptyScriptEventListener to BG.Event.ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionDeactivatedEvent
12-26/20:32:26 DEBUG [main] ScriptEventListener - Add empty listener to BG.Event.ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionDeactivatedEvent
12-26/20:32:26 DEBUG [main] EventProcessor - Add EmptyScriptEventListener to BG.Event.ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionDeactivatedEvent
12-26/20:33:28 DEBUG [event-proc-p-2-t-1] EventProcessor - Add ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener$ThreadedScriptEventListener@12 to BG.Event.ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionDeactivatedEvent

создаем еще один скрипт поведения с событием "Активация/Реактивация опции" с тем же самым дин. кодом. Активируем опцию.
Код:
12-26/20:38:09 DEBUG [event-proc-p-2-t-1] EventProcessor - Add ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener$ThreadedScriptEventListener@13 to BG.Event.ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent
12-26/20:38:19  INFO [event-proc-p-2-t-1] ScriptEventListener - Caught event: ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent
12-26/20:38:19 ERROR [event-proc-p-2-t-1] ScriptEventListener - Eval error: java.lang.Exception: java.lang.ClassCastException: ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent cannot be cast to ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionDeactivatedEvent
java.util.concurrent.ExecutionException: java.lang.Exception: java.lang.ClassCastException: ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent cannot be cast to ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionDeactivatedEvent
Caused by: java.lang.Exception: java.lang.ClassCastException: ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent cannot be cast to ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionDeactivatedEvent
Caused by: java.lang.ClassCastException: ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent cannot be cast to ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionDeactivatedEvent
12-26/20:38:19 ERROR [event-proc-p-2-t-1] ScriptEventListener - java.util.concurrent.ExecutionException: java.lang.Exception: java.lang.ClassCastException: ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent cannot be cast to ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionDeactivatedEvent
Caused by: java.lang.Exception: java.lang.ClassCastException: ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent cannot be cast to ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionDeactivatedEvent
Caused by: java.lang.ClassCastException: ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionActivatedEvent cannot be cast to ru.bitel.bgbilling.kernel.tariff.option.server.event.TariffOptionDeactivatedEvent

вываливается екзепшн о том, что нельзя запихнуть TariffOptionActivatedEvent в TariffOptionDeactivatedEvent, что в принципе понятно. в логах выполнения, в самом договоре появился только тот что нацелен на активацию опции. Ждём деактивации опции - и тишина.
на лицо то, что события на деактивацию тарифной опции вообще не происходит, ну либо не срабатывает на него скрипт.


Последний раз редактировалось Dog 26 дек 2013, 22:54, всего редактировалось 3 раз(а).

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 26 дек 2013, 22:51 
Не в сети
Клиент

Зарегистрирован: 21 сен 2009, 13:01
Сообщения: 835
Откуда: Москва
Карма: 15
меняю в скрипте TariffOptionDeactivatedEvent на TariffOptionActivatedEvent, перезапускаю всё. скрипты поведения остаются прошлыми. в итоге, при активации опции, тот что на Активацию/Реактивацию отрабатывает тихо и мирно, а тот что на Деактивацию вообще не отрабатывает.
Что еще сделать?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 26 дек 2013, 23:28 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
Dog писал(а):
меняю в скрипте TariffOptionDeactivatedEvent на TariffOptionActivatedEvent, перезапускаю всё. скрипты поведения остаются прошлыми. в итоге, при активации опции, тот что на Активацию/Реактивацию отрабатывает тихо и мирно, а тот что на Деактивацию вообще не отрабатывает.
Что еще сделать?


а что вы понимаете под "Деактивация" опции?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 27 дек 2013, 00:07 
Не в сети
Клиент

Зарегистрирован: 21 сен 2009, 13:01
Сообщения: 835
Откуда: Москва
Карма: 15
хм, ну когда у нее заканчивается период действия, и она оправляется в Историю? или событие "Деактивация..." имеется ввиду её деактивация из ЛК? тогда какое событие совпадает с тем, что я подразумеваю по Деактивацией?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 27 дек 2013, 00:29 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
по моему его нету...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 27 дек 2013, 01:42 
Не в сети
Клиент

Зарегистрирован: 21 сен 2009, 13:01
Сообщения: 835
Откуда: Москва
Карма: 15
и как быть? нужно увидеть когда закончилась одна опция, чтобы запустить следующую.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 27 дек 2013, 07:11 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Модуль "Подписки"?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 27 дек 2013, 12:40 
Не в сети
Клиент

Зарегистрирован: 21 сен 2009, 13:01
Сообщения: 835
Откуда: Москва
Карма: 15
не, обойдусь пока что костылями.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 27 дек 2013, 13:38 
Не в сети
Клиент

Зарегистрирован: 21 сен 2009, 13:01
Сообщения: 835
Откуда: Москва
Карма: 15
а можно как то добавлять опцию на будущее число? если например через sql в базу её пихнуть, она потом активируется?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 27 дек 2013, 17:28 
Не в сети
Клиент

Зарегистрирован: 21 сен 2009, 13:01
Сообщения: 835
Откуда: Москва
Карма: 15
а еще судя по доке в классе bitel.billing.server.contract.bean.Payment есть методы getSum() и getSumma(). getSumma() - устарел и предполагается что нужно брать getSum() которого там нет:
Код:
cannot find symbol
symbol  : method getSum()
location: class bitel.billing.server.contract.bean.Payment


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 27 дек 2013, 18:51 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
Dog писал(а):
а еще судя по доке в классе bitel.billing.server.contract.bean.Payment есть методы getSum() и getSumma(). getSumma() - устарел и предполагается что нужно брать getSum() которого там нет:
Код:
cannot find symbol
symbol  : method getSum()
location: class bitel.billing.server.contract.bean.Payment


какая версия?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 27 дек 2013, 19:16 
Не в сети
Клиент

Зарегистрирован: 21 сен 2009, 13:01
Сообщения: 835
Откуда: Москва
Карма: 15
6.0


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 27 дек 2013, 19:40 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
в 6 версии в данном классе есть оба метода, может у вас билд старый?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 27 дек 2013, 19:42 
Не в сети
Клиент

Зарегистрирован: 21 сен 2009, 13:01
Сообщения: 835
Откуда: Москва
Карма: 15
может быть
Код:
  Сервер: вер. 6.0 сборка 1620 от 06.11.2013 18:01:46
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.6.0_33


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

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


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

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


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

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