BiTel

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

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




Начать новую тему Ответить на тему  [ Сообщений: 18 ] 
Автор Сообщение
СообщениеДобавлено: 07 июн 2015, 19:01 
Не в сети

Зарегистрирован: 22 мар 2013, 11:06
Сообщения: 19
Карма: 0
В билде 872 такой запрос работал.
Цитата:
{"method" : "freeIpResourceRangeList",
"user" :{ "user" : "bguser", "pswd" : "bgpswd" },
"params" : {
"deviceId":-1,
"interfaceId":-1,
"ipResourceCategoryIds": [1],
"ipResourceIds": [6],
"dateFrom":"2015-06-08",
"dateTo": "2015-06-08",
"range":"1",
"max" : "1"
}
}

В 881 выдает ошибку. Залез в javadoc, ага метод устарел, в новом первых двух параметров уже нет. Исправил - всё равно выдает ошибку.
Пишет, что хочет дату, а я ему даю массив. В общем, договориться пока не удается. ;)
ЧТЯДНТ?
Запрос:
Цитата:
{"method" : "freeIpResourceRangeList",
"user" :{ "user" : "bguser", "pswd" : "bgpswd" },
"params" : {
"ipResourceCategoryIds": [1],
"ipResourceIds": [6],
"dateFrom":"2015-06-08",
"dateTo": "2015-06-08",
"range":"1",
"max" : "1"
}
}

Ответ:
Код:
"message": "Can not deserialize instance of java.util.Date out of START_ARRAY token\n at [Source: N/A; line: -1, column: -1]"

В логе сервера, вполне ожидаемо (не хватает форуму тэга спойлер):
java.lang.IllegalArgumentException: Can not deserialize instance of java.util.Date out of START_ARRAY token
at [Source: N/A; line: -1, column: -1]
at com.fasterxml.jackson.databind.ObjectMapper._convert(ObjectMapper.java:2759)
at com.fasterxml.jackson.databind.ObjectMapper.convertValue(ObjectMapper.java:2701)
at ru.bitel.bgbilling.kernel.container.ws.server.JsonWsHandler.fillArgs(JsonWsHandler.java:404)
at ru.bitel.bgbilling.kernel.container.ws.server.JsonWsHandler.handle(JsonWsHandler.java:218)
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: com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.util.Date out of START_ARRAY token
at [Source: N/A; line: -1, column: -1]
at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:164)
at com.fasterxml.jackson.databind.DeserializationContext.mappingException(DeserializationContext.java:749)
at com.fasterxml.jackson.databind.deser.std.StdDeserializer._parseDate(StdDeserializer.java:755)
at com.fasterxml.jackson.databind.deser.std.DateDeserializers$DateBasedDeserializer._parseDate(DateDeserializers.java:176)
at com.fasterxml.jackson.databind.deser.std.DateDeserializers$DateDeserializer.deserialize(DateDeserializers.java:262)
at com.fasterxml.jackson.databind.deser.std.DateDeserializers$DateDeserializer.deserialize(DateDeserializers.java:246)
at com.fasterxml.jackson.databind.ObjectMapper._convert(ObjectMapper.java:2754)
... 23 more


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 08 июн 2015, 11:03 
Не в сети

Зарегистрирован: 22 мар 2013, 11:06
Сообщения: 19
Карма: 0
Интереса ради переделал запрос на php через клиент
Такой вот код, аналогичный с методом ServiceService:serviceList работает.
Код:
$login = 'bguser';
$password = 'bgpswd';
$wsdl = 'http://' . urlencode($login) . ':' . urlencode($password) . '@' . $server . ':8080/bgbilling/executer/ru.bitel.oss.systems.inventory.resource/12/ResourceService?wsdl';
$client = new SoapClient($wsdl, array( 'login' => $login, 'password' => $password));

$answer = $client->__SoapCall("freeIpResourceNetList", 
array(  "ipResourceCategoryIds" => array(1),
        "ipResourceIds" => array(6),
        "datefrom" => "2015-06-08",
        "dateto" => "2015-06-08",
        "range" => 1,
        "max"=> 1
        )
);

Ответ другой, но всё равно не очень радует:
Цитата:
SOAP-ERROR: Encoding: object has no 'mask' property


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 08 июн 2015, 12:33 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Напомните зачем вы через велосипед json вызываете сервисы, а не стандартным способом?

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


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

Зарегистрирован: 22 мар 2013, 11:06
Сообщения: 19
Карма: 0
Исторически так сложилось. Внешний скрипт работал с json/xml, когда в версии 5.1 всё было на экшнах.
Когда прочел доку, сложилось впечатление, что как хорошо, что добавили тут json, безболезненно можно переехать.
Но оказалось совсем не так, через json сервисы вызвать нельзя, ибо ими никто не пользуется таким макаром и разрабы сделали это только для галочки :(
Впрочем во втором посте я пробую обратиться к сервису "обычным" методом и всё равно выдает ошибку.


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

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
ну там же написано чего именно не хватает

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 08 июн 2015, 13:53 
Не в сети

Зарегистрирован: 22 мар 2013, 11:06
Сообщения: 19
Карма: 0
Да я вижу, что написано. Только в каком формате и типе данных оно это хочет неясно.
Видимо, чтобы работать с вебсервисами, нужно обладать недюжинной телепатией ;)


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

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Нет, там похоже ошибка с обработкой JSON при наличии deprecated метода.
Не ломайте пока голову, посмотрим.


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

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Выложили, попробуйте.
Также должен быть доступен freeIpResourceRangeListOld.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09 июн 2015, 13:03 
Не в сети

Зарегистрирован: 22 мар 2013, 11:06
Сообщения: 19
Карма: 0
Amir писал(а):
Выложили, попробуйте.

Пытаюсь обновить с 881, через ./update.sh, но обновление зависает на строчках:
Цитата:
Downloading update_6.2.zip OK
Downloading update_lib_6.2_62.zip

При этом update_lib_6.2_62.zip уже скачан на диск, размер совпадает с файлом на фтп, но дальше установщик не идет.
Было уже такое? Что можно сделать?


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

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Можно update_lib_6.2_62.zip скачать и установить вручную "bg_installer.sh update_lib_6.2_62.zip!"
Только перед этим приложения биллинга остановить.
Также можно и потом update_6.2.zip установить, либо снова попробовать update.sh.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09 июн 2015, 15:35 
Не в сети
Аватара пользователя

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09 июн 2015, 18:47 
Не в сети

Зарегистрирован: 22 мар 2013, 11:06
Сообщения: 19
Карма: 0
dimOn, удалять все файлы пробовал, не помогло. Вручную получилось обновиться, как написал Amir.
Amir, на метод freeIpResourceRangeListOld биллинг ругается java.lang.NullPointerException. Зато обычный freeIpResourceRangeList отлично работает в двух вариантах, как с указанием параметров deviceId, interfaceId, так и без них. Спасибо!
Кстати, в посте выше при запросе через __SoapCall я неправильно указал метод. Исправил, и в таком варианте у меня не заработало:
Код:
$answer = $client->__SoapCall("freeIpResourceRangeList", 
array(  "ipResourceCategoryIds" => array(1),
        "ipResourceIds" => array(6),
        "dateFrom" => "2015-06-08",
        "dateTo" => "2015-06-08",
        "range" => 1,
        "max"=> 1
        )
);

Выдает:
Цитата:
SOAP-ERROR: Encoding: object has no 'range' property

Версия сервера 899. В логе сервера пусто. Предупреждая возможные вопросы, сразу пишу, что 'range' написан заморскими буквами.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 25 июн 2015, 07:49 
Не в сети

Зарегистрирован: 22 мар 2013, 11:06
Сообщения: 19
Карма: 0
Новый тред не буду заводить, напишу тут.
Сервер 6.2.902.
Метод inetDeviceRoot сервиса InetDeviceService выдает невалидный Json. В конце ответа не хватает закрывающих фигурных скобок. Именно у меня всё время получалось, что не хватает три скобки.
Код:
SyntaxError: Unexpected end of input

Пример запроса:
Цитата:
{"method" : "inetDeviceRoot",
"user" : { "user" : "bguser", "pswd" : "bgpswd" },
"params" : {
"host":"10.1.1.1",
"deviceTypeIds":[1,2],
"deviceGroupIds":[2],
"loadDeviceGroupIds":false,
"loadAncestors":false
}
}

Ответ с существующим устройством не буду приводить, очень уж он большой получается. Вот что получается, если запросить несуществующий девайс, ошибка аналогичная, обрывается на null:
Цитата:
{"status":"ok","exception":null,"message":"","data":{"return":{"id":0,"title":null,"entitySpecId":0,"entityAttributes":null,"entityId":0,"entityTitle":null,"deviceTypeId":0,"identifier":null,"host":null,"deviceGroupIds":null,"username":null,"password":null,"secret":null,"config":null,"comment":null,"parentId":0,"children":[],"uptime":null,"uptimeTime":null,"dateFrom":null,"dateTo":null,"orderManagerDisabled":false,"invDeviceId":0,"invDeviceTypeId":0,"invTitle":null,"invIdentifier":null,"invHost":null,"invConfig":null,"invDeviceGroupIds":null


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 25 июн 2015, 11:20 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
я повторно рекомендую не гнать велосипед в глухих лугах, а вызывать вебсервисы стандартно :umnik:

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


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

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
В логах нет ошибок при этом?


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

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Ошибку повторили. Исправляем. Там кстати exception в логах сервера должен быть.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 25 июн 2015, 21:22 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Исправлено. Обновление выкладывается(будет) в течении 10 минут. Это пока локальное решение проблемы, чтобы этот метод работал. Нашли способ как это исправить глобально(проблема возможна и в других местах), исправим позже.


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

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Глобальное решение данной проблемы реализовано.
JSON-RPC будет поддерживаться и развиваться как перспективный метод взаимодействия для сторонних приложений.
Т.к., например, из Java использовать стандартные Web-сервисы слишком сложно. Особенно, если меняются версии на сервере либо необходимо работать с несколькими серверами разных версий.


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

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


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

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


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

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