forum.bitel.ru http://forum.bitel.ru/ |
|
снова web-сервис, json и freeIpResourceRangeList [6.2.881] (CRM) http://forum.bitel.ru/viewtopic.php?f=19&t=10592 |
Страница 1 из 1 |
Автор: | TrUsTeR [ 07 июн 2015, 19:01 ] |
Заголовок сообщения: | снова web-сервис, json и freeIpResourceRangeList [6.2.881] |
В билде 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 |
Автор: | TrUsTeR [ 08 июн 2015, 11:03 ] |
Заголовок сообщения: | Re: снова web-сервис, json и freeIpResourceRangeList [6.2.88 |
Интереса ради переделал запрос на 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
|
Автор: | dimOn [ 08 июн 2015, 12:33 ] |
Заголовок сообщения: | Re: снова web-сервис, json и freeIpResourceRangeList [6.2.88 |
Напомните зачем вы через |
Автор: | TrUsTeR [ 08 июн 2015, 12:40 ] |
Заголовок сообщения: | Re: снова web-сервис, json и freeIpResourceRangeList [6.2.88 |
Исторически так сложилось. Внешний скрипт работал с json/xml, когда в версии 5.1 всё было на экшнах. Когда прочел доку, сложилось впечатление, что как хорошо, что добавили тут json, безболезненно можно переехать. Но оказалось совсем не так, через json сервисы вызвать нельзя, ибо ими никто не пользуется таким макаром и разрабы сделали это только для галочки ![]() Впрочем во втором посте я пробую обратиться к сервису "обычным" методом и всё равно выдает ошибку. |
Автор: | dimOn [ 08 июн 2015, 13:23 ] |
Заголовок сообщения: | Re: снова web-сервис, json и freeIpResourceRangeList [6.2.88 |
ну там же написано чего именно не хватает |
Автор: | TrUsTeR [ 08 июн 2015, 13:53 ] |
Заголовок сообщения: | Re: снова web-сервис, json и freeIpResourceRangeList [6.2.88 |
Да я вижу, что написано. Только в каком формате и типе данных оно это хочет неясно. Видимо, чтобы работать с вебсервисами, нужно обладать недюжинной телепатией ![]() |
Автор: | Amir [ 08 июн 2015, 14:21 ] |
Заголовок сообщения: | Re: снова web-сервис, json и freeIpResourceRangeList [6.2.88 |
Нет, там похоже ошибка с обработкой JSON при наличии deprecated метода. Не ломайте пока голову, посмотрим. |
Автор: | Amir [ 08 июн 2015, 16:30 ] |
Заголовок сообщения: | Re: снова web-сервис, json и freeIpResourceRangeList [6.2.88 |
Выложили, попробуйте. Также должен быть доступен freeIpResourceRangeListOld. |
Автор: | TrUsTeR [ 09 июн 2015, 13:03 ] |
Заголовок сообщения: | Re: снова web-сервис, json и freeIpResourceRangeList [6.2.88 |
Amir писал(а): Выложили, попробуйте. Пытаюсь обновить с 881, через ./update.sh, но обновление зависает на строчках: Цитата: Downloading update_6.2.zip OK Downloading update_lib_6.2_62.zip При этом update_lib_6.2_62.zip уже скачан на диск, размер совпадает с файлом на фтп, но дальше установщик не идет. Было уже такое? Что можно сделать? |
Автор: | Amir [ 09 июн 2015, 14:42 ] |
Заголовок сообщения: | Re: снова web-сервис, json и freeIpResourceRangeList [6.2.88 |
Можно update_lib_6.2_62.zip скачать и установить вручную "bg_installer.sh update_lib_6.2_62.zip!" Только перед этим приложения биллинга остановить. Также можно и потом update_6.2.zip установить, либо снова попробовать update.sh. |
Автор: | dimOn [ 09 июн 2015, 15:35 ] |
Заголовок сообщения: | Re: снова web-сервис, json и freeIpResourceRangeList [6.2.88 |
если OK не написал то не понимает что скачал. если удалить файлы все zip и заново апдейт запустить - то же самое? |
Автор: | TrUsTeR [ 09 июн 2015, 18:47 ] |
Заголовок сообщения: | Re: снова web-сервис, json и freeIpResourceRangeList [6.2.88 |
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' написан заморскими буквами. |
Автор: | TrUsTeR [ 25 июн 2015, 07:49 ] |
Заголовок сообщения: | Re: снова web-сервис, json и freeIpResourceRangeList [6.2.88 |
Новый тред не буду заводить, напишу тут. Сервер 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
|
Автор: | dimOn [ 25 июн 2015, 11:20 ] |
Заголовок сообщения: | Re: снова web-сервис, json и freeIpResourceRangeList [6.2.88 |
я повторно рекомендую не гнать велосипед в глухих лугах, а вызывать вебсервисы стандартно ![]() |
Автор: | Amir [ 25 июн 2015, 19:25 ] |
Заголовок сообщения: | Re: снова web-сервис, json и freeIpResourceRangeList [6.2.88 |
В логах нет ошибок при этом? |
Автор: | stark [ 25 июн 2015, 19:43 ] |
Заголовок сообщения: | Re: снова web-сервис, json и freeIpResourceRangeList [6.2.88 |
Ошибку повторили. Исправляем. Там кстати exception в логах сервера должен быть. |
Автор: | stark [ 25 июн 2015, 21:22 ] |
Заголовок сообщения: | Re: снова web-сервис, json и freeIpResourceRangeList [6.2.88 |
Исправлено. Обновление выкладывается(будет) в течении 10 минут. Это пока локальное решение проблемы, чтобы этот метод работал. Нашли способ как это исправить глобально(проблема возможна и в других местах), исправим позже. |
Автор: | Администратор [ 07 ноя 2015, 01:13 ] |
Заголовок сообщения: | Re: снова web-сервис, json и freeIpResourceRangeList [6.2.88 |
Глобальное решение данной проблемы реализовано. JSON-RPC будет поддерживаться и развиваться как перспективный метод взаимодействия для сторонних приложений. Т.к., например, из Java использовать стандартные Web-сервисы слишком сложно. Особенно, если меняются версии на сервере либо необходимо работать с несколькими серверами разных версий. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |