forum.bitel.ru http://forum.bitel.ru/ |
|
[6.2] Метод contractTariffList в ContractTariffService http://forum.bitel.ru/viewtopic.php?f=19&t=11728 |
Страница 1 из 1 |
Автор: | spectrum [ 25 июн 2016, 06:15 ] |
Заголовок сообщения: | [6.2] Метод contractTariffList в ContractTariffService |
Пытаюсь применить метод 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" } Но мне нужны вышеописанные методы. |
Автор: | dimOn [ 26 июн 2016, 19:55 ] |
Заголовок сообщения: | Re: [6.2] Метод contractTariffList в ContractTariffService |
Как-то не так вызываете |
Автор: | spectrum [ 27 июн 2016, 00:51 ] |
Заголовок сообщения: | Re: [6.2] Метод contractTariffList в ContractTariffService |
Да вроде все верно вызываю. Отправляю 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":""}]}}
|
Автор: | Artur [ 27 июн 2016, 13:23 ] |
Заголовок сообщения: | Re: [6.2] Метод contractTariffList в ContractTariffService |
Посмотрите документацию к этому веб-сервису (https://bgbilling.ru/v6.2/javadoc/ru/bi ... e-int-int-). У данного метода более одного аргумента. |
Автор: | spectrum [ 27 июн 2016, 14:16 ] |
Заголовок сообщения: | Re: [6.2] Метод contractTariffList в ContractTariffService |
А подскажите, что значат аргументы entityMid и entityId и как их получить? |
Автор: | Artur [ 27 июн 2016, 14:34 ] |
Заголовок сообщения: | Re: [6.2] Метод contractTariffList в ContractTariffService |
Эти два поля служат для определения кода модуля и сущности модуля, к которой привязывается тариф. Сущности разные. Например, для модуля phone это поинты (можно на поинты навешивать абонплаты), для dialup - логины. Если вам нужен просто список тарифов, привязанных к договору (читай к ядру), то передайте туда -1 |
Автор: | spectrum [ 27 июн 2016, 14:56 ] |
Заголовок сообщения: | Re: [6.2] Метод contractTariffList в ContractTariffService |
Отправляю запрос: Код: {"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":[]}}
|
Автор: | skn [ 27 июн 2016, 15:02 ] |
Заголовок сообщения: | Re: [6.2] Метод contractTariffList в ContractTariffService |
не все параметры указаны Код: public List<ContractTariff> contractTariffList( int contractId, Date date, int entityMid, int entityId )
|
Автор: | spectrum [ 27 июн 2016, 15:10 ] |
Заголовок сообщения: | Re: [6.2] Метод contractTariffList в ContractTariffService |
А почему в некоторых случаях часть параметров можно не указывать, а в некоторых надо? Вот например метод 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":[]}}
|
Автор: | dimOn [ 27 июн 2016, 16:05 ] |
Заголовок сообщения: | Re: [6.2] Метод contractTariffList в ContractTariffService |
А у вас нет возможности вызывать веб-сервисы не через json-костыль, а канонично? На чём пишете? |
Автор: | spectrum [ 27 июн 2016, 16:29 ] |
Заголовок сообщения: | Re: [6.2] Метод contractTariffList в ContractTariffService |
Хм. Вроде раньше писали, что как раз на json все переводите. А как канонично вызывать? Я по-другому не умею. И вот для метода contractTariffGroupList рабоатет же все. Мне нужен просто ответ на contractTariffList и больше ничего, собственно, не нужно. Данный скрипт пишу на java, используя json.jar |
Автор: | spectrum [ 29 июн 2016, 12:56 ] |
Заголовок сообщения: | Re: [6.2] Метод contractTariffList в ContractTariffService |
Как мне этот вопрос решать дальше? Подскажите, плиз. |
Автор: | skn [ 29 июн 2016, 13:12 ] |
Заголовок сообщения: | Re: [6.2] Метод contractTariffList в ContractTariffService |
попробуйте так Код: {"method" : "contractTariffList", "user" :{ "user" : "username", "pswd" : "password" }, "params" : { "contractId": "1", "date" : "2016-06-27", "entityMid" : "-1", "entityId" : "-1" } }
|
Автор: | dimOn [ 29 июн 2016, 13:42 ] |
Заголовок сообщения: | Re: [6.2] Метод contractTariffList в ContractTariffService |
выше написали же, что надо в вашм случае для сущностей использовать -1, потому что вам тарифы договора надо а не сущностей модуля инет |
Автор: | spectrum [ 29 июн 2016, 15:29 ] |
Заголовок сообщения: | Re: [6.2] Метод contractTariffList в ContractTariffService |
skn писал(а): попробуйте так Код: {"method" : "contractTariffList", "user" :{ "user" : "username", "pswd" : "password" }, "params" : { "contractId": "1", "date" : "2016-06-27", "entityMid" : "-1", "entityId" : "-1" } } Все получилось! Спасибо! |
Автор: | stark [ 07 июл 2016, 19:36 ] |
Заголовок сообщения: | Re: [6.2] Метод contractTariffList в ContractTariffService |
spectrum писал(а): Данный скрипт пишу на java, используя json.jar На java можно и вот так. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |