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

подскажите, в чём беда?
Вложение:
1.jpg
1.jpg [ 97.47 КБ | Просмотров: 10055 ]

использовал то что "Динамические веб-сервисы"
в конфиге есть:
Код:
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/