2

2 つの RPC 呼び出しを実行し、ユーザーがデータストアに提供したデータを保存するプロジェクトがあります。最初の RPC 呼び出しは問題なく動作しますが、2 回目からは常にonFailure()メッセージを受け取ります。onFailure()がトリガーされた理由を特定するにはどうすればよいですか? 試しcaught.getCause()ましたが、何も返されません。

feedbackService.saveFeedback(email,studentName,usedTemplates,
    new AsyncCallback<String>() {

    public void onFailure(Throwable caught) {
        // Show the RPC error message to the user
        caught.getCause();
        Window.alert("Failure!");
    }

    public void onSuccess(String result) {
        Window.alert("Saved!");
    }
});
4

3 に答える 3

1

スロー可能なインスタンスは、例外のインスタンスです。次のようなカスタム例外であるかどうかを確認できます。

if (caught instanceOf CustomException){

または、例外のメッセージを表示したい場合は、getMessage()を使用できます。

Window.alert("Failure: " + caught.getMessage());
于 2013-01-27T11:12:44.090 に答える
0

GWT-rpcは、エラーが発生した場合に簡単にebugすることはできません。

最も簡単な部分は、例外がの一部であるかどうかを確認することですStatusCodeException

  • ステータスコード404は、間違ったエンドポイントを指していることを意味します
  • 0は、つまり
    • シアーバーは到達不能です
    • サーバーが使用可能かどうかを確認する権限がありません(X-domain-request)

Chrome-Web-Inspectorを使用してGWT-RPCを寝かせることができます

ブラウザからバックエンドへのすべての呼び出しを表示できるはずです。

最も一般的な障害は、オブジェクトのシリアル化が原因です。すべてのdtransferedオブジェクトが実装されていることを確認する必要がありますjava.io.Serializable

于 2013-01-27T11:32:29.073 に答える
0

ほとんどの場合、サーバー側の例外が発生してonFailure()メソッドが起動されます。

サーバー側にブレークポイントを設定してみてください。これは、何が問題なのかを特定するのに役立ちます。

于 2013-01-27T16:48:15.193 に答える