Получение ком.гуглить.ГВт.пользователь.клиент.протокол RPC.StatusCodeException: 0 в GWT
Я иногда / часто получаю это исключение в GWT, но не знаю, почему:
SEVERE: com.google.gwt.user.client.rpc.StatusCodeException: 0
java.lang.RuntimeException: com.google.gwt.user.client.rpc.StatusCodeException: 0
at Unknown.java_lang_RuntimeException_RuntimeException__Ljava_lang_Throwable_2V(Unknown Source)
at Unknown.de_ctech24_simplynews_web_client_util_SimpleCallback_$onFailure__Lde_ctech24_simplynews_web_client_util_SimpleCallback_2Ljava_lang_Throwable_2V(Unknown Source)
at Unknown.com_google_gwt_user_client_rpc_impl_RequestCallbackAdapter_$onResponseReceived__Lcom_google_gwt_user_client_rpc_impl_RequestCallbackAdapter_2Lcom_google_gwt_http_client_Request_2Lcom_google_gwt_http_client_Response_2V(Unknown Source)
at Unknown.com_google_gwt_http_client_Request_$fireOnResponseReceived__Lcom_google_gwt_http_client_Request_2Lcom_google_gwt_http_client_RequestCallback_2V(Unknown Source)
at Unknown.com_google_gwt_http_client_RequestBuilder_onReadyStateChange__Lcom_google_gwt_xhr_client_XMLHttpRequest_2V(Unknown Source)
at Unknown.<anonymous>(Unknown Source)
at Unknown.com_google_gwt_core_client_impl_Impl_apply__Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_Object_2(Unknown Source)
Caused by: com.google.gwt.user.client.rpc.StatusCodeException: 0
at Unknown.java_lang_RuntimeException_RuntimeException__Ljava_lang_String_2Ljava_lang_Throwable_2V(Unknown Source)
at Unknown.com_google_gwt_user_client_rpc_StatusCodeException_StatusCodeException__ILjava_lang_String_2V(Unknown Source)
at Unknown.com_google_gwt_user_client_rpc_impl_RequestCallbackAdapter_$onResponseReceived__Lcom_google_gwt_user_client_rpc_impl_RequestCallbackAdapter_2Lcom_google_gwt_http_client_Request_2Lcom_google_gwt_http_client_Response_2V(Unknown Source)
at Unknown.com_google_gwt_http_client_Request_$fireOnResponseReceived__Lcom_google_gwt_http_client_Request_2Lcom_google_gwt_http_client_RequestCallback_2V(Unknown Source)
at Unknown.com_google_gwt_http_client_RequestBuilder_onReadyStateChange__Lcom_google_gwt_xhr_client_XMLHttpRequest_2V(Unknown Source)
at Unknown.<anonymous>(Unknown Source)
at Unknown.com_google_gwt_core_client_impl_Impl_apply__Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_Object_2(Unknown Source)
проведя некоторое время в Гугле, я нашел это: http://www.mail-archive.com/google-web-toolkit@googlegroups.com/msg79537.html
там был дан интересный намек: это произошло, если вы отключите WLAN и снова подключитесь - тогда возникает ошибка. Я попробовал это на своем ноутбуке - тогда возникает исключение.
еще одна проблема-это исключение возникает иногда (не всегда одновременно или при выполнении определенного действия-так казалось бы, случайных) хотя сетевое подключение в порядке. Я не знаю, почему это происходит и как правильно с этим справиться - конечно, я могу поймать и проигнорировать это. Но запрос не отправляется на сервер, и действие не выполняется - не совсем хорошая обработка ошибок.
некоторые данные об этом приложении-возможно, это помогает сузить или надеюсь, решение проблемы:
- GWT 2.4 с Sencha GXT 3.0.1
- происходит во всех лучших браузерах в новейшей версии: IE, Chrome, Firefox
- используя Cloudflare (Я также пробовал без него-но это та же проблема. Таким образом, это, по-видимому, не связано с использованием этого прокси-сервиса.)
большое спасибо за каждый намек и каждую идею, как обрабатывать/решить эту проблему.
4 ответов
поскольку нет кода состояния HTTP 0, это, похоже, не с сервера - может быть стоит проверить с помощью Firebug или что-то еще, просто чтобы убедиться, что нет плохого ответа, как это возвращается.
вместо этого это почти наверняка из самого браузера, либо соединение истекло, либо было сброшено сервером, либо браузер не смог добраться до сервера (плохой dns, плохой шлюз, потерянный wifi, сервер недоступен).
отнестись к этому неожиданный сбой сервера-возможно, отступите и повторите попытку, отобразите сообщение пользователю, зарегистрируйте ошибку и отправьте ее, когда соединения снова будут работать.
тот факт, что это происходит во всех браузерах указывает на проблему сети или сервера - крайне маловероятно, что все браузеры терпят неудачу непредсказуемым образом вместе. Этот факт также упрощает отладку - вы можете использовать инструменты отладки вашего любимого браузера.
Это происходит с нами, если наш уровень аутентификации определяет, что сеанс истек, и перенаправляет запрос RPC на страницу входа на другом хосте. Поскольку AJAX-запросы не могут перейти на другой хост, браузер прерывает запрос и сигнализирует код состояния 0. См.https://code.google.com/p/google-web-toolkit/issues/detail?id=2858
его сумасшедший тоже, потому что GWT бросит StatusCodeException с кодом 0, даже если HTTP-код, который появляется в Firebug / Chrome инспектор явно 302.
хотя оригинальный плакат, вероятно, имел проблемы с их сетевым подключением, я получил ту же ошибку сегодня в режиме размещения GWT. И не Иногда, а все время.
теперь я понял это, и я хотел бы поделиться им здесь, чтобы другие люди, ищущие решение проблемы кода состояния 0, могли его найти.
Если вы используете маркеры безопасности Rpc, которые предоставляет GWT (как в этом объяснении: http://www.gwtproject.org/doc/latest/DevGuideSecurityRpcXsrf.html) против межсайтовых сценариев, но вы забываете установить маркер безопасности по любой причине, тогда одна из вещей, с которой вы можете столкнуться, - это нулевой результат.
Я разработал свое веб-приложение так,что большинство вызовов RPC в основном выполняются в рамках. Сегодня мне нужно было создать сервис RPC вручную. Забыл установить RPCToken, получил пустой ответ от сервера.
надеюсь, это кому-то поможет из.
Я обнаружил, что если вы повесите вызов rpc на сервере (поток.подождите ()), и браузер обновляется затем на стороне клиента непосредственно перед загрузкой страницы снова он вызовет метод onFailure ожидающего обратного вызова с вышеупомянутым кодом состояния, который предполагает, что он организует в клиенте или что это общий код ошибки для неспецифических пойманных исключений.