如何确定GWT-RPC中触发onFailure的原因?

时间:2013-01-27 11:07:58

标签: gwt gwt-rpc

我有一个项目可以执行2次RPC调用,然后保存用户在数据存储区中提供的数据。第一个RPC调用正常,但从第二个调用开始,我总是收到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!");
    }
});

3 个答案:

答案 0 :(得分:1)

Throwable实例是Exception的实例。您可以检查它是否是这样的自定义异常:

if (caught instanceOf CustomException){

或者如果要显示异常消息,可以使用getMessage():

Window.alert("Failure: " + caught.getMessage());

答案 1 :(得分:0)

如果发生错误,GWT-rpc并不容易ebug。

最简单的部分是检查异常是StatusCodeException的一部分。

  • 状态代码为404表示您指向错误的端点
  • 0表示,那
    • 收件人无法访问
    • 如果服务器可用(X-domain-request)
    • ,则无权检查

您可以使用Chrome-Web-Inspector来实现GWT-RPC

您应该可以看到从浏览器到您后端的所有来电。

最常见的失败是因为对象的序列化。您必须确保所有dtransferred对象都实现java.io.Serializable

答案 2 :(得分:0)

大多数情况下,只会引发服务器端异常,触发onFailure()方法。

尝试在服务器端放置断点。这应该可以帮助你找出问题所在。