BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 28 апр 2024, 04:46

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




Начать новую тему Ответить на тему  [ Сообщений: 16 ] 
Автор Сообщение
 Заголовок сообщения: [6.2] Метод contractTariffList в ContractTariffService
СообщениеДобавлено: 25 июн 2016, 06:15 
Не в сети

Зарегистрирован: 29 янв 2014, 11:32
Сообщения: 365
Карма: 10
Пытаюсь применить метод contractTariffList в ContractTariffService через json. Выдает:
Код:
{
    "exception": "java.lang.IllegalArgumentException",
    "data": {},
    "tag": null,
    "message": null,
    "status": "error"
}

В логах сервера:
Код:
06-25/03:11:44 ERROR [http-bio-0.0.0.0-8080-exec-2] JsonWsHandler -
java.lang.reflect.InvocationTargetException
        at ru.bitel.bgbilling.kernel.container.service.server.ServiceInfo.invoke(ServiceInfo.java:118)
        at ru.bitel.bgbilling.kernel.container.ws.server.JsonWsHandler.handle(JsonWsHandler.java:317)
        at bitel.billing.server.Executer.doPost(SourceFile:158)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1074)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalArgumentException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at ru.bitel.bgbilling.kernel.container.service.server.ServiceInfo.invoke(ServiceInfo.java:101)
        ... 21 more


Аналогично с методом contractTariffEntryList

Когда использую метод contractTariffGroupList все проходит без ошибок.
Код:
{
    "exception": null,
    "data": {"return": [{
        "tariffGroupId": 1,
        "contractId": 1111111,
        "dateTo": null,
        "comment": "",
        "id": 5,
        "dateFrom": "2015-08-30T00:00:00+03:00"
    }]},
    "tag": null,
    "message": "",
    "status": "ok"
}


Но мне нужны вышеописанные методы.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 26 июн 2016, 19:55 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Как-то не так вызываете

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 27 июн 2016, 00:51 
Не в сети

Зарегистрирован: 29 янв 2014, 11:32
Сообщения: 365
Карма: 10
Да вроде все верно вызываю.

Отправляю json-запрос post-ом на
https://server/bgbilling/executer/json/ ... iffService

json-запрос:
Код:
{"method" : "contractTariffList", "user" :{ "user" : "username", "pswd" : "password" }, "params" : { "contractId": "1" } }


Получаю:
Код:
{"status":"error","exception":"java.lang.IllegalArgumentException","message":null,"tag":null,"data":{}}


Если отправить запрос на метод contractTariffGroupList, то все проходит нормально:
Код:
{"method" : "contractTariffGroupList", "user" :{ "user" : "username", "pswd" : "password" }, "params" : { "contractId": "1" } }

Код:
{"status":"ok","exception":null,"message":"","tag":null,"data":{"return":[{"id":8,"contractId":1,"tariffGroupId":1,"dateFrom":"2015-08-30T00:00:00+03:00","dateTo":null,"comment":""}]}}


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 27 июн 2016, 13:23 
Не в сети
Аватара пользователя

Зарегистрирован: 27 янв 2010, 16:12
Сообщения: 941
Откуда: Уфа
Карма: 124
Посмотрите документацию к этому веб-сервису (https://bgbilling.ru/v6.2/javadoc/ru/bi ... e-int-int-).
У данного метода более одного аргумента.

_________________
С уважением, Гареев Артур. Вежливый разработчик ООО "Бител".


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

Зарегистрирован: 29 янв 2014, 11:32
Сообщения: 365
Карма: 10
А подскажите, что значат аргументы entityMid и entityId и как их получить?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 27 июн 2016, 14:34 
Не в сети
Аватара пользователя

Зарегистрирован: 27 янв 2010, 16:12
Сообщения: 941
Откуда: Уфа
Карма: 124
Эти два поля служат для определения кода модуля и сущности модуля, к которой привязывается тариф. Сущности разные. Например, для модуля phone это поинты (можно на поинты навешивать абонплаты), для dialup - логины. Если вам нужен просто список тарифов, привязанных к договору (читай к ядру), то передайте туда -1

_________________
С уважением, Гареев Артур. Вежливый разработчик ООО "Бител".


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 27 июн 2016, 14:56 
Не в сети

Зарегистрирован: 29 янв 2014, 11:32
Сообщения: 365
Карма: 10
Отправляю запрос:
Код:
{"method" : "contractTariffList", "user" :{ "user" : "username", "pswd" : "password" }, "params" : { "contractId": "1", "entityMid" : "1", "entityId" : "-1"  } }


Номер модуля Inet - "1"
На абоненте висят активные тарифы.
но выдает следующее:
Код:
{"status":"ok","exception":null,"message":"","tag":null,"data":{"return":[]}}


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 27 июн 2016, 15:02 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
не все параметры указаны

Код:
public List<ContractTariff> contractTariffList( int contractId, Date date, int entityMid, int entityId )


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 27 июн 2016, 15:10 
Не в сети

Зарегистрирован: 29 янв 2014, 11:32
Сообщения: 365
Карма: 10
А почему в некоторых случаях часть параметров можно не указывать, а в некоторых надо? Вот например метод contractTariffGroupList (пример в первом сообщении) также есть параметр дата, но его монжо не указывать.

Указал дату:
Код:
{"method" : "contractTariffList", "user" :{ "user" : "username", "pswd" : "password" }, "params" : { "contractId": "1", "date" : "2016-06-27", "entityMid" : "1", "entityId" : "-1"  } }


Результат аналогичный:
Код:
{"status":"ok","exception":null,"message":"","tag":null,"data":{"return":[]}}


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 27 июн 2016, 16:05 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
А у вас нет возможности вызывать веб-сервисы не через json-костыль, а канонично?
На чём пишете?

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 27 июн 2016, 16:29 
Не в сети

Зарегистрирован: 29 янв 2014, 11:32
Сообщения: 365
Карма: 10
Хм. Вроде раньше писали, что как раз на json все переводите. А как канонично вызывать? Я по-другому не умею.

И вот для метода contractTariffGroupList рабоатет же все. Мне нужен просто ответ на contractTariffList и больше ничего, собственно, не нужно.

Данный скрипт пишу на java, используя json.jar


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 июн 2016, 12:56 
Не в сети

Зарегистрирован: 29 янв 2014, 11:32
Сообщения: 365
Карма: 10
Как мне этот вопрос решать дальше? Подскажите, плиз.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 июн 2016, 13:12 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
попробуйте так

Код:
{"method" : "contractTariffList", "user" :{ "user" : "username", "pswd" : "password" }, "params" : { "contractId": "1", "date" : "2016-06-27", "entityMid" : "-1", "entityId" : "-1"  } }


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 июн 2016, 13:42 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
выше написали же, что надо в вашм случае для сущностей использовать -1, потому что вам тарифы договора надо а не сущностей модуля инет

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 июн 2016, 15:29 
Не в сети

Зарегистрирован: 29 янв 2014, 11:32
Сообщения: 365
Карма: 10
skn писал(а):
попробуйте так

Код:
{"method" : "contractTariffList", "user" :{ "user" : "username", "pswd" : "password" }, "params" : { "contractId": "1", "date" : "2016-06-27", "entityMid" : "-1", "entityId" : "-1"  } }


Все получилось! Спасибо!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 07 июл 2016, 19:36 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
spectrum писал(а):

Данный скрипт пишу на java, используя json.jar


На java можно и вот так.


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

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


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

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


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

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