forum.bitel.ru
http://forum.bitel.ru/

getSids на 5.2 Deprecated
http://forum.bitel.ru/viewtopic.php?f=22&t=6951
Страница 1 из 1

Автор:  madmax [ 11 июл 2012, 11:14 ]
Заголовок сообщения:  getSids на 5.2 Deprecated

Имею строчку кода
Код:
String moduleServices = new ModuleAndServiceUtils(con).getSids(mid);

В api написано что
Код:
Deprecated.
Использовать ModuleCache.getModuleServicesString(int).

И написано что Класс разделён на несколько: ModuleManager, ModuleCache, ServiceManager, ContractModuleManager.
но ссылка на ModuleCache отсутствует, нашли его в разделе ru.bitel.bgbilling.kernel.module.server и прописали в коде
Код:
import ru.bitel.bgbilling.kernel.module.server.ModuleCache;
String moduleServices = new  ModuleCache(con).getModuleServicesString(mid);

Но в итоге получаем ошибку
Код:
Eval error: Typed variable declaration : Constructor error: Can't find constructor: ru.bitel.bgbilling.kernel.module.server.ModuleCache( org.apache.c
ommons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper ) in class: ru.bitel.bgbilling.kernel.module.server.ModuleCache

Автор:  Феанор [ 11 июл 2012, 11:43 ]
Заголовок сообщения:  Re: getSids на 5.2 Deprecated

madmax писал(а):
Имею строчку кода
Код:
String moduleServices = new ModuleAndServiceUtils(con).getSids(mid);

В api написано что
Код:
Deprecated.
Использовать ModuleCache.getModuleServicesString(int).

И написано что Класс разделён на несколько: ModuleManager, ModuleCache, ServiceManager, ContractModuleManager.
но ссылка на ModuleCache отсутствует, нашли его в разделе ru.bitel.bgbilling.kernel.module.server и прописали в коде
Код:
import ru.bitel.bgbilling.kernel.module.server.ModuleCache;
String moduleServices = new  ModuleCache(con).getModuleServicesString(mid);

Но в итоге получаем ошибку
Код:
Eval error: Typed variable declaration : Constructor error: Can't find constructor: ru.bitel.bgbilling.kernel.module.server.ModuleCache( org.apache.c
ommons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper ) in class: ru.bitel.bgbilling.kernel.module.server.ModuleCache

что у вас за объект con, который вы в конструктор передаете?
Код:
ModuleCache( org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper )

туда ж по любому надо обычный ява скуль Коннекшн, который используют в других конструкторах биллинга
Код:
ModuleCache( java.sql.Connection)

Автор:  madmax [ 11 июл 2012, 12:09 ]
Заголовок сообщения:  Re: getSids на 5.2 Deprecated

Так и есть используется обычный коннекшен. Ошибка же на коде cpm = new ContractParameterManager(con); не выходит.
Я так предполагаю что проблема с классом ModuleCache он скорее все глючный.
В api на него нет ссылки даже.
Код:
public void main( setup, con, conSlave )
{
   now = (new SimpleDateFormat("yyyy/MM/dd HH:mm:ss")).format(new Date());
   cpm = new ContractParameterManager(con);
        startMonth = TimeUtils.getStartMonth(Calendar.getInstance());
   Calendar toDate = Calendar.getInstance();
   toDate.add(Calendar.MONTH,1);
   String moduleServices = new ModuleCache(con).getModuleServicesString(mid);
}

Автор:  Феанор [ 11 июл 2012, 15:04 ]
Заголовок сообщения:  Re: getSids на 5.2 Deprecated

madmax писал(а):
Так и есть используется обычный коннекшен. Ошибка же на коде cpm = new ContractParameterManager(con); не выходит.
Я так предполагаю что проблема с классом ModuleCache он скорее все глючный.
В api на него нет ссылки даже.

Вобщем все неправильно =) У меня 5.1, я по вашим логам смотрел по ошибке. Скачал библиотеки для 5.2 посмотрел через эклипс что там предлагается. Нет там конструктора, синглтон это похоже ( что и логично было бы - ведь кэш модулей должен быть один).
Вот так надо.
Код:
//для примера услуги модуля 1
int moduleId=1;
String services=ModuleCache.getInstance().getModuleServicesString(moduleId);

там есть еще метод getModuleServicesList(mid), который возвращает сразу List<Services>, а у сервисес можно и getId() и getTitle() получать. Смотрите как вам удобней.

Автор:  madmax [ 11 июл 2012, 15:14 ]
Заголовок сообщения:  Re: getSids на 5.2 Deprecated

Не проходит идет ошибка
Код:
Typed variable declaration : No static field or inner class: getInstance of class ru.bitel.bgbilling.kernel.module.server.ModuleCache

Автор:  skn [ 11 июл 2012, 16:51 ]
Заголовок сообщения:  Re: getSids на 5.2 Deprecated

getInstance() - в коде скобки точно есть?

Автор:  madmax [ 11 июл 2012, 16:57 ]
Заголовок сообщения:  Re: getSids на 5.2 Deprecated

ошибка выходит при таком коде.
Код:
String moduleServices = ModuleCache.getInstance().getModuleServicesString(mid);

как видите скобки указаны.

Автор:  Феанор [ 11 июл 2012, 17:21 ]
Заголовок сообщения:  Re: getSids на 5.2 Deprecated

тогда странно что он говорит что нет поля и класса - по скобкам он явно должен обращаться к методу... Уступаю место разработчикам =)

Автор:  stark [ 12 июл 2012, 12:55 ]
Заголовок сообщения:  Re: getSids на 5.2 Deprecated

Написал глобальный скрипт
Код:
import ru.bitel.bgbilling.kernel.module.server.ModuleCache;

public void main( setup, con, conSlave )
{
   int moduleId=33;
   String services=ModuleCache.getInstance().getModuleServicesString(moduleId);
   print( "OK" );   
}


Работает нормально . Запустите его у себя

Автор:  madmax [ 12 июл 2012, 14:45 ]
Заголовок сообщения:  Re: getSids на 5.2 Deprecated

Странно, сейчас все отработало.
Хотя я все также писал, может где-то в букве ошибся.
Сейчас скопировал что вы написали, вставил и все отработало.
Спасибо.

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/