forum.bitel.ru http://forum.bitel.ru/ |
|
5.2 Событие "Перед действием" и Web service http://forum.bitel.ru/viewtopic.php?f=19&t=7468 |
Страница 1 из 1 |
Автор: | lda [ 28 ноя 2012, 16:53 ] |
Заголовок сообщения: | 5.2 Событие "Перед действием" и Web service |
На главной странице сайта http://bgbilling.ru/ в разделе "В разработке" красуется надпись "Планомерный перевод протокола взаимодействия клиент-сервер на стандарт Web-сервисов." Стандарты это конечно хорошо, но что же будет с событием "Перед действием"? Вот мне в 5.2 надо, перед изменением статуса договора, ругнуться на оператора, если он неверное меняет статус. Как быть? |
Автор: | dimOn [ 28 ноя 2012, 16:58 ] |
Заголовок сообщения: | Re: 5.2 Событие "Перед действием" и Web service |
События перед действием не работают для вебсервисов, и они вообще не очень. С 5.2 есть возможность обернуть каждый вызов в прямой вызов динамического кода, там и надо ругаться. Это ещё не описано в доке, недавно сделано, думал только к следующему релизу описать. |
Автор: | Phricker [ 28 ноя 2012, 17:22 ] |
Заголовок сообщения: | Re: 5.2 Событие "Перед действием" и Web service |
Каждому купившему лицензию на использование BGBilling'а в подарок ![]() |
Автор: | lda [ 28 ноя 2012, 17:25 ] |
Заголовок сообщения: | Re: 5.2 Событие "Перед действием" и Web service |
dimOn писал(а): События перед действием не работают для вебсервисов, и они вообще не очень. С 5.2 есть возможность обернуть каждый вызов в прямой вызов динамического кода, там и надо ругаться. Это ещё не описано в доке, недавно сделано, думал только к следующему релизу описать. Опишите пожалуйста хотя бы в общих чертах, как этим пользоваться. |
Автор: | dimOn [ 28 ноя 2012, 18:03 ] |
Заголовок сообщения: | Re: 5.2 Событие "Перед действием" и Web service |
Запилил в вики обзорную статью с примерами: http://wiki.bgbilling.ru/index.php/%D0% ... 0%BE%D0%B2 |
Автор: | lda [ 28 ноя 2012, 18:05 ] |
Заголовок сообщения: | Re: 5.2 Событие "Перед действием" и Web service |
Спасибо! |
Автор: | dimOn [ 28 ноя 2012, 18:13 ] |
Заголовок сообщения: | Re: 5.2 Событие "Перед действием" и Web service |
Скрипты писал под работающий пример, так что всё должно быть ок. Проверьте, изучите, отпишитесь. Про статусы там как раз пример есть. |
Автор: | lda [ 28 ноя 2012, 18:59 ] |
Заголовок сообщения: | Re: 5.2 Событие "Перед действием" и Web service |
Попробовал, все получилось, еще раз спасибо. |
Автор: | Dog [ 21 янв 2013, 20:26 ] |
Заголовок сообщения: | Re: 5.2 Событие "Перед действием" и Web service |
подскажите, в чём беда? Вложение: использовал то что "Динамические веб-сервисы" в конфиге есть: Код: dynservice:ru.bitel.bgbilling.kernel.contract.status.ContractStatusMonitorService=ru.gigacom.scripts.work.ContractStatusMonitorServiceImpl
|
Автор: | lda [ 22 янв 2013, 10:46 ] |
Заголовок сообщения: | Re: 5.2 Событие "Перед действием" и Web service |
Покажите ru.gigacom.scripts.work.ContractStatusMonitorServiceImpl |
Автор: | Dog [ 22 янв 2013, 11:23 ] |
Заголовок сообщения: | Re: 5.2 Событие "Перед действием" и Web service |
Код: package ru.gigacom.scripts.work; import java.util.Date; import javax.jws.WebService; import ru.bitel.bgbilling.common.BGException; import ru.bitel.bgbilling.common.BGMessageException; import ru.bitel.bgbilling.kernel.contract.status.common.ContractStatusMonitorService; import ru.bitel.common.Utils; /** * Перегруженный вебсервис для проверки некоторых параметров: * 3. Скрипт реализующий запрет изменения "Статуса" договора в случае если поле комментарий пустое. * * В конфиг сервера прописывается: * dynservice:ru.bitel.bgbilling.kernel.contract.status.ContractStatusMonitorService=ru.xxx.ContractStatusMonitorServiceImpl * @author dimon */ @WebService(endpointInterface = "ru.bitel.bgbilling.kernel.contract.status.common.ContractStatusMonitorService") public class ContractStatusMonitorServiceImpl extends ru.bitel.bgbilling.kernel.contract.status.server.service.ContractStatusMonitorServiceImpl implements ContractStatusMonitorService { @Override public void changeContractStatus( int[] cids, int statusId, Date dateFrom, Date dateTo, String comment ) throws BGException { //System.out.println("\t!\tchangeContractStatus"); // [3] // ContractStatusMonitorService:changeContractStatus // @WebParam( name = "comment" ) String comment if( Utils.isBlankString( comment ) ) { throw new BGMessageException( "Введите комментарий" ); } super.changeContractStatus( cids, statusId, dateFrom, dateTo, comment ); } } ничего не успел поменять, все из вики. |
Автор: | lda [ 22 янв 2013, 11:37 ] |
Заголовок сообщения: | Re: 5.2 Событие "Перед действием" и Web service |
Через дин. код у меня не получилось подменить класс. Я создал библиотеку с классом ru.gigacom.scripts.work.ContractStatusMonitorServiceImpl, положил ее в BGBillingServer/lib/ext, прописал в настройках dynservice:ru.bitel.bgbilling.kernel.contract.status.ContractStatusMonitorService=ru.gigacom.scripts.work.ContractStatusMonitorServiceImpl , перезапустил биллинг. и все у меня заработало. |
Автор: | dimOn [ 15 авг 2013, 13:07 ] |
Заголовок сообщения: | Re: 5.2 Событие "Перед действием" и Web service |
Да, на самом деле был косяк небольшой, сейчас всё работать должно без костылей. |
Автор: | dmitry_P [ 23 июн 2016, 14:19 ] |
Заголовок сообщения: | Re: 5.2 Событие "Перед действием" и Web service |
Подскажите кто может, как в переопределении сервиса ContractStatusMonitorServiceImpl получить соединение в базу java.sql.Connection con? Мне тут ContractManager понадобился, чтоб некие параметры договора проверить, а компилятор ругаецо. Сервер: вер. 5.2 сборка 1643 от 02.11.2015 16:37:29 os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.6.0_31 |
Автор: | Phricker [ 23 июн 2016, 14:29 ] |
Заголовок сообщения: | Re: 5.2 Событие "Перед действием" и Web service |
Код: Connection con = super.getConnection();
|
Автор: | dimOn [ 23 июн 2016, 15:01 ] |
Заголовок сообщения: | Re: 5.2 Событие "Перед действием" и Web service |
да вообще по идее просто getConnection() |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |