10

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$1_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$1_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 を切断して再度接続すると、エラーが発生します。ノートブックでこれを試しましたが、例外が発生しました。

もう 1 つの問題は、ネットワーク接続は問題なくても、この例外が時々発生することです(必ずしも同時に、または特定のアクションを実行するときではなく、一見ランダムに見えます) 。なぜこれが起こるのか、それを処理する正しい方法は何なのかわかりません - 確かに私はそれを捕まえて無視することができます. しかし、リクエストがサーバーに送信されることはなく、アクションは実行されません。エラー処理が適切ではありません。

このアプリに関するいくつかのデータ - おそらくこれは、問題を絞り込むか、できれば解決するのに役立ちます。

  • GWT 2.4 と Sencha GXT 3.0.1
  • 最新バージョンのすべての上位ブラウザーで発生します: IE、Chrome、Firefox
  • Cloudflareを使用(私もそれなしで試しましたが、それは同じ問題です。したがって、これはこの Proxy-Service を使用して発生したものではないようです。 )

これを処理/解決するためのすべてのヒントとすべてのアイデアに感謝します。

4

4 に答える 4

5

HTTP ステータス コード 0 がないため、これはサーバーからのものではないようです。Firebug などを使用してテストし、このような応答が返されないことを確認するだけでも価値があります。

代わりに、これはほぼ確実にブラウザー自体からのものであり、接続がタイムアウトしたか、サーバーによってドロップされたか、ブラウザーがサーバーに到達できませんでした (DNS が正しくない、ゲートウェイが正しくない、Wi-Fi が失われている、サーバーが利用できない)。

これを予期しないサーバー障害と同様に扱います。おそらくバックオフして再試行し、ユーザーにメッセージを表示し、エラーをログに記録し、接続が再び機能しているときにそれを送信します。

すべてのブラウザーで発生しているという事実は、ネットワークまたはサーバーの問題を示しています。すべてのブラウザーが予期しない方法で同時に失敗することはほとんどありません。この事実により、デバッグも容易になります。お気に入りのブラウザーのデバッグ ツールを使用できます。

于 2012-09-27T16:49:04.410 に答える
2

元の投稿者はネットワーク接続に問題があった可能性がありますが、今日、GWT ホスト モード内で同じエラーが発生しました。そして時々ではなく、いつも。

私は今それを理解しました.0ステータスコードの問題に対する解決策を探している他の人々がそれを見つけることができるように、ここで共有したいと思います.

GWT が提供する Rpc セキュリティ トークン (この説明のように: http://www.gwtproject.org/doc/latest/DevGuideSecurityRpcXsrf.html ) をクロス サイト スクリプティングに対して使用しているが、何らかの理由でセキュリティ トークンを設定するのを忘れた場合遭遇する可能性のあるものの 1 つは、結果がゼロになることです。

ほとんどの RPC 呼び出しがほとんどフレームワーク内で行われるように、Web アプリケーションを設計しました。今日は、手動で RPC サービスを作成する必要がありました。RPCToken を設定するのを忘れて、サーバーから空の応答を受け取りました。

これが誰かを助けることを願っています。

于 2014-06-04T19:21:13.427 に答える
2

これは、認証レイヤーがセッションの有効期限が切れていると判断し、RPC 要求を別のホストのログイン ページにリダイレクトした場合に発生します。AJAX リクエストは別のホストに送信できないため、ブラウザはリクエストを中止し、ステータス コード 0 を通知します。https://code.google.com/p/google-web-toolkit/issues/detail?id= 2858 を参照してください。

Firebug / Chrome Inspector に表示される HTTP コードが明らかに 302 であるにもかかわらず、GWT がコード 0 の StatusCodeException をスローするため、これもクレイジーです。

于 2014-05-01T20:17:29.770 に答える