BiTel

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

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




Начать новую тему Ответить на тему  [ Сообщений: 21 ] 
Автор Сообщение
СообщениеДобавлено: 21 авг 2013, 19:56 
Не в сети

Зарегистрирован: 31 июл 2013, 13:10
Сообщения: 9
Карма: 0
Для тестирования скорости списания абон. платы, нужно автоматом создать множество договоров, прилепить к ним модуль inet, и начислить на каждый договор определённую сумму.
Беглый просмотр форума и wiki не дал результатов.

Могу ли я реализовать вышеописанное через api? И если да - то в какую сторону копать?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 21 авг 2013, 20:13 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Создать шаблон договора с NPAY и Inet и http://bgbilling.ru/v6.0/javadoc/bitel/billing/server/contract/bean/ContractManager.html#createFromPattern(int,%20java.lang.String,%20java.util.Calendar,%20java.lang.String)


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

Зарегистрирован: 31 июл 2013, 13:10
Сообщения: 9
Карма: 0
Спасибо.
Я начинающий в java и могу ошибаться, но разве для использования класса ContractManager в 5.2 не нужно иметь server.jar в библиотеках bg? Я не могу найти её в 5.2, зато она есть в 5.1. Могу ли я её использовать оттуда?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 авг 2013, 17:11 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
В 5.2 он находится в kernel.jar.


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

Зарегистрирован: 15 мар 2009, 14:04
Сообщения: 1337
Карма: 12
Попутно - а как добавить сервис для модуля Inet с нужными мне параметрами? Ну или пусть создается из шаблона, но потом мне на нем надо поменять login/pass и ip.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 авг 2013, 19:06 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
http://bgbilling.ru/v6.0/javadoc/ru/bitel/bgbilling/modules/inet/api/common/service/InetServService.html#inetServUpdate(ru.bitel.bgbilling.modules.inet.api.common.bean.InetServ, java.util.List, boolean, boolean, long)


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

Зарегистрирован: 15 мар 2009, 14:04
Сообщения: 1337
Карма: 12
Опять таки, это интерфейс. Как же мне его использовать как класс? Ну не настолько крут я в java :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 авг 2013, 17:40 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
ServerContext context = new ServerContext( setup, moduleId, userId );
InetServService inetServService = context.getService( InetServService.class, moduleId );


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 авг 2013, 20:18 
Не в сети
Клиент

Зарегистрирован: 15 мар 2009, 14:04
Сообщения: 1337
Карма: 12
Получаю exception :( Причем почему-то русских букв не видно:
Вот код, что я еще забыл заполнить?
Цитата:
InetServ inetServ = new InetServ();
inetServ.setContractId( 46 );
inetServ.setTypeId( 4 );
inetServ.setDeviceId( 20 );
inetServ.setLogin( "test" );
inetServ.setPassword( "test" );
inetServ.setDateFrom( dtYesterday );
inetServ.setDateTo( null );
inetServ.setSessionCountLimit( 1 );
inetServ.setStatus( InetServ.STATUS_ACTIVE );
inetServ.setComment( "Test" );
inetServService.inetServUpdate(inetServ, new ArrayList<InetServOption>(), false, false, 0);


Цитата:
EXCEPTIONS:
ru.bitel.bgbilling.common.BGMessageException: ??????????? ????? ?????? 5 ????????.
at ru.bitel.bgbilling.modules.inet.api.server.service.InetServServiceImpl.inetServUpdate(InetServServiceImpl.java:250)
at ru.ups.migration.MigrationScript.doCreateContract(MigrationScript.java:109)
at ru.ups.migration.MigrationScript.doCreateContracts(MigrationScript.java:90)
at ru.ups.migration.MigrationScript.execute(MigrationScript.java:56)
at ru.bitel.bgbilling.kernel.script.server.bean.GlobalScriptInvoker.invoke(GlobalScriptInvoker.java:22)
at ru.bitel.bgbilling.kernel.script.server.GlobalScriptServiceImpl.executeGlobalScript(GlobalScriptServiceImpl.java:75)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at ru.bitel.bgbilling.kernel.container.service.server.ServiceInfo.invoke(ServiceInfo.java:102)
at ru.bitel.bgbilling.kernel.container.ws.server.AbstractJaxWsHandler.invoke(AbstractJaxWsHandler.java:192)
at ru.bitel.bgbilling.kernel.container.ws.server.JaxWsHandler.access$1(JaxWsHandler.java:1)
at ru.bitel.bgbilling.kernel.container.ws.server.JaxWsHandler$2.run(JaxWsHandler.java:312)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:416)
at ru.bitel.bgbilling.kernel.container.ws.server.JaxWsHandler.invoke(JaxWsHandler.java:306)
at ru.bitel.bgbilling.kernel.container.ws.server.AbstractJaxWsHandler$ServiceInstanceResolver$1.invoke(AbstractJaxWsHandler.java:304)
at com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:150)
at com.sun.xml.ws.server.sei.EndpointMethodHandler.invoke(EndpointMethodHandler.java:261)
at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:100)
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:641)
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:600)
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:585)
at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:482)
at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:314)
at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:608)
at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:259)
at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:162)
at ru.bitel.common.server.JaxWSAdapter.handle(JaxWSAdapter.java:374)
at bitel.billing.server.Executer.doPost(Unknown Source)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at bitel.billing.server.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:48)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:403)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:301)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:162)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:140)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:679)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 авг 2013, 17:07 
Не в сети

Зарегистрирован: 31 июл 2013, 13:10
Сообщения: 9
Карма: 0
На этапе запуска:
При попытке обратиться к классу
Код:
                                try
               {
               ContractManager cm = new ContractManager(con);
               String mytitle = name_pattern+ "_" +i;
               Contract contract = cm.createFromPattern(pattern, mytitle, rightNow, password);

               System.out.println("pre updateContract");
               cm.updateContract(contract);
               }
            catch (Exception ex)
               {
               System.out.println("ohoho");
               Logger lgr = Logger.getLogger(CrContract.class.getName());
               lgr.log(Level.SEVERE, ex.getMessage(), ex);
               }

Срабатывает исключение
Код:
ERROR [EventProcessor-init] EventProcessor - Name java:comp is not bound in this Context
javax.naming.NameNotFoundException: Name java:comp is not bound in this Context
        at org.apache.naming.NamingContext.lookup(NamingContext.java:770)
        at org.apache.naming.NamingContext.lookup(NamingContext.java:153)
        at javax.naming.InitialContext.lookup(InitialContext.java:411)
        at ru.bitel.bgbilling.kernel.event.EventProcessor.getEnv(EventProcessor.java:168)
        at ru.bitel.bgbilling.kernel.event.EventProcessor.access$2(EventProcessor.java:160)
        at ru.bitel.bgbilling.kernel.event.EventProcessor$5.call(EventProcessor.java:1050)
        at ru.bitel.bgbilling.kernel.event.EventProcessor$5.call(EventProcessor.java:1)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
        at java.util.concurrent.FutureTask.run(FutureTask.java:166)
        at java.lang.Thread.run(Thread.java:724)

Может быть встречались с чем нибудь подобным?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 авг 2013, 17:19 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Цитата:
Может быть встречались с чем нибудь подобным?
Нужно сначала проинициализировать ru.bitel.bgbilling.server.util.Setup (который загружает data/data.properties).
Код:
Setup.setSetup( new Setup( fileName ) );


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 авг 2013, 17:21 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Цитата:
Причем почему-то русских букв не видно
С кодировкой что-то где-то.
Ругается где-то здесь:
Код:
            if( password.length() < minLength )
            {
               throw new BGMessageException( "Минимальная длина пароля " + minLength + " символов." );
            }

            if( password.length() > maxLength )
            {
               throw new BGMessageException( "Максимальная длина пароля " + maxLength + " символов." );
            }


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 авг 2013, 19:34 
Не в сети

Зарегистрирован: 31 июл 2013, 13:10
Сообщения: 9
Карма: 0
Теперь вот следующая ошибка, чем то ему mq в data.properties не нравится. Может тоже, как и для db, требуется mq.driver?
ошибка
Код:
08-30/17:13:07  INFO [main] DefaultServerSetup - Init DB connection pools
 08-30/17:13:07 ERROR [EventProcessor-init] EventProcessor - Name mq is not bound in this Context
javax.naming.NameNotFoundException: Name mq is not bound in this Context
        at org.apache.naming.NamingContext.lookup(NamingContext.java:770)
        at org.apache.naming.NamingContext.lookup(NamingContext.java:153)
        at ru.bitel.bgbilling.kernel.event.EventProcessor$5.call(EventProcessor.java:1051)
        at ru.bitel.bgbilling.kernel.event.EventProcessor$5.call(EventProcessor.java:1)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
        at java.util.concurrent.FutureTask.run(FutureTask.java:166)
        at java.lang.Thread.run(Thread.java:724)
Exception in thread "main" java.lang.NullPointerException
        at ru.bitel.bgbilling.server.util.Setup.addReloadListener(Setup.java:66)
        at ru.bitel.bgbilling.server.util.Setup.<init>(Setup.java:54)
        at bgbill.CrContract.main(CrContract.java:31)

data.properties
Код:
connector.http=*:8080
port.admin=2005

db.driver=com.mysql.jdbc.Driver
db.url=jdbc:mysql://127.0.0.1/bgbilling?useUnicode=true&characterEncoding=Cp1251&allowUrlInLocalInfile=true&zeroDateTimeBehavior=convertToNull&jdbcCompliantTruncation=false&elideSetAutoCommits=true&cachePrepStmts=true&useCursorFetch=true&queryTimeoutKillsConnection=true
db.user=bill
db.pswd=bgbilling
db.maxIdle=20
db.maxActive=300
db.validationTimeout=10

mq.url=failover:(nio://127.0.0.1:61616)
mq.user=bill
mq.pswd=bgbilling

context.path=/bgbilling


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

Зарегистрирован: 31 июл 2013, 13:10
Сообщения: 9
Карма: 0
Вышестоящее сообщение о ошибке появляется после добавления строк:
Код:
      String fileName = "data.properties";
      Setup.setSetup(new Setup(fileName));


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

Зарегистрирован: 31 июл 2013, 13:10
Сообщения: 9
Карма: 0
Как собираю и запускаю
Код:
#!/bin/sh
cd /home/username/source/bgbill/;

export PTBG=/usr/local/BGBillingServer;
export CLASSPATH=$CLASSPATH:".:$PTBG/lib/app/kernel.jar:$PTBG/lib/ext/tomcat-embed-core.jar:$PTBG/lib/ext/log4j.jar:$PTBG/lib/ext/commons-pool.jar:$PTBG/lib/ext/commons-dbcp.jar:$PTBG/lib/ext/tomcat-embed-logging-log4j.jar:$PTBG/lib/ext/xalan.jar:/opt/apache-activemq-5.4.2/activemq-all-5.4.2.jar:/usr/share/java/mysql-connector-java.jar"

echo "Этап компиляции";
javac -cp $CLASSPATH newbg/CrContract.java;

echo "Этап запуска";
java -cp $CLASSPATH newbg/CrContract;

Что пытаюсь запустить
Код:
package newbg;

import java.io.*;
import java.sql.*;
import java.util.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.log4j.*;

import bitel.billing.common.*;
import bitel.billing.server.contract.bean.*;
import bitel.billing.server.contract.*;
import ru.bitel.bgbilling.server.util.*;

class CrContract
   {
   public static void main(String args[])
      {
      // Параметры подключения к БД
      Connection con = null;
      Statement st = null;
      ResultSet rs = null;
      String url = "jdbc:mysql://localhost:3306/bgbilling";
      String user = "bill";
      String pass = "bgbilling";
      try
         {
         con = DriverManager.getConnection(url, user, pass);
         st = con.createStatement();
         rs = st.executeQuery("SHOW TABLES");

         if (rs.next())
            {
            System.out.println(rs.getString(1));
            }
         // Инициализация биллинга
         String fileName = "/usr/local/BGBillingServer/data/data.properties";
         Setup.setSetup(new Setup(fileName));

         // Параметры создаваемых договоров
         int pattern = 1;
         String name_pattern = "TestInet";
         Calendar rightNow = Calendar.getInstance();
         String password = "trololo";

         // Запуск создания договоров
         for(int i=1;i<3;i++)
            {
            try
               {

               ContractManager cm = new ContractManager(con);
               System.out.println(name_pattern+ "_" +i);
               String mytitle = name_pattern+ "_" +i;
               System.out.println(mytitle);
               Contract contract = cm.createFromPattern(pattern, mytitle, rightNow, password);

               System.out.println("pre updateContract");
               cm.updateContract(contract);
               }
            catch (Exception ex)
               {
               Logger lgr = Logger.getLogger(CrContract.class.getName());
               lgr.log(Level.SEVERE, ex.getMessage(), ex);
               }
            }
         }
      catch (SQLException ex)
         {
         Logger lgr = Logger.getLogger(CrContract.class.getName());
         lgr.log(Level.SEVERE, ex.getMessage(), ex);
         }
      finally
         {
         try
            {
            if (con != null)
               {
               con.close();
               }
            }
         catch (SQLException ex)
            {
            }
         }
      }
   }

Останавливается на инициализации биллинга с ошибкой (на этапе запуска):
Код:
 09-03/15:46:52  INFO [main] DefaultServerSetup - Init DB connection pools
 09-03/15:46:52 ERROR [EventProcessor-init] EventProcessor - Name mq is not bound in this Context
javax.naming.NameNotFoundException: Name mq is not bound in this Context
        at org.apache.naming.NamingContext.lookup(NamingContext.java:803)
        at org.apache.naming.NamingContext.lookup(NamingContext.java:159)
        at ru.bitel.bgbilling.kernel.event.EventProcessor$5.call(EventProcessor.java:1051)
        at ru.bitel.bgbilling.kernel.event.EventProcessor$5.call(EventProcessor.java:1)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
        at java.util.concurrent.FutureTask.run(FutureTask.java:166)
        at java.lang.Thread.run(Thread.java:724)
Exception in thread "main" java.lang.NullPointerException
        at ru.bitel.bgbilling.server.util.Setup.addReloadListener(Setup.java:66)
        at ru.bitel.bgbilling.server.util.Setup.<init>(Setup.java:54)
        at newbg.CrContract.main(CrContract.java:49)


Шёл 15 день изучения java


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

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Эм. А что мешает из динкода выполнить что нибудь наподобии этого?

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

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


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

Зарегистрирован: 31 июл 2013, 13:10
Сообщения: 9
Карма: 0
Нет, мне лишь бы работало.
Спасибо. Покурю.


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

Зарегистрирован: 31 июл 2013, 13:10
Сообщения: 9
Карма: 0
Но таки интересно, почему то что есть - не работает.


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

Зарегистрирован: 31 июл 2013, 13:10
Сообщения: 9
Карма: 0
Вкорячил скрипт через "глобальные скрипты поведения". Всё заработало. Спасибо.


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

Зарегистрирован: 15 мар 2009, 14:04
Сообщения: 1337
Карма: 12
А как привязать статический IP к InetServ? IpResourceSubscription нашел, но как им манипулировать?


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

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Достаточно добавлять/обновлять через InetServService - inetServService.inetServUpdate() - там внутри все само делается.


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

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


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

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


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

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