forum.bitel.ru http://forum.bitel.ru/ |
|
Статус сервиса для ServiceActivatorAdapter http://forum.bitel.ru/viewtopic.php?f=44&t=7977 |
Страница 1 из 1 |
Автор: | bgnewbie [ 20 апр 2013, 12:14 ] |
Заголовок сообщения: | Статус сервиса для ServiceActivatorAdapter |
Пишу обработчик для ServiceActivatorAdapter. При выборе пункта "Включить" или "Отключить" на ресурсе всегда установлены поля STATUS_CLOSED, STATUS_LOCKED, STATE_ENABLE. Функции getState() и getStatus() также всегда возвращают одно и то же значение. Как можно узнать новый статус услуги? Сервер: вер. 5.2 сборка 1347 от 19.11.2012 18:15:07 os: Linux; java: Java HotSpot(TM) Server VM, v.1.6.0_26 inet вер. 5.2 сборка 1019 от 19.11.2012 19:59:03 |
Автор: | bgnewbie [ 22 апр 2013, 09:27 ] |
Заголовок сообщения: | Re: Статус сервиса для ServiceActivatorAdapter |
Сам же и отвечу на свой вопрос. При генерации события serviceModify соответствующей функции передаётся аргумент типа ServiceActivatorEvent. Пусть этот аргумент присвоен переменной e, тогда сравнивая значение функции e.getNewState() со значением констант класса InetServ, можно получить новое состояние услуги: Код: int stateValue = e.getNewState(); if( stateValue == InetServ.STATE_ENABLE ) { // сервис оказался в состоянии "включен" } else if( stateValue == InetServ.STATE_DISABLE) { // в состоянии "выключен" } else if( stateValue == InetServ.STATE_DELETED) { // "удалён" } else if( stateValue == InetServ.STATE_NULL) { // "не изменился" } Значение, отдаваемое getNewState(), зависит от состояния договора И состояния услуги. Если статус договора "Активен", то getNewState() == InetServ.STATE_ENABLE, в любом другом случае getNewState() == InetServ.STATE_DISABLE. Если сервис включен, то getNewState() == InetServ.STATE_ENABLE, если выключен, то getNewState() == InetServ.STATE_DISABLE (соответствующие пункты контекстного меню сервиса). |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |