我从最后一天开始面对这个问题。这就是并且需要你的帮助。
我正在开发一个Web应用程序,并通过RPC从服务器发送和检索数据。
我的问题是,如果我点击任何操作,我发送请求,如果我点击导航页面到其他视图的任何其他链接,而不检索第一个RPC的数据我得到了例外因为那个导航。
我需要通过了解导航来避免它。
这里我写了代码。让我们检查一次:
@Override
public void onFailure(Throwable exception) {
if (exception instanceof StatusCodeException) {
if (((StatusCodeException) exception).getStatusCode() == 403) {
MyExcclass.showMessage("session expired");
logout();
} else {
MyExcclass.showInformation("unable to perform the action");
}
}
exception.printStackTrace();
}
我无法执行操作。
答案 0 :(得分:0)
如果在RPC响应返回时卸载了该页面,您应该会看到StatusCodeException
getStatusCode()
0
。
如果需要,您可以在Window.addCloseHandler
内预先取消请求。这意味着您必须为每个远程服务提供自己的RpcRequestBuilder
以保持Request
个实例(在Set
中),直到它们完成为止(您将包装{ {1}}从RequestCallback
或Request
中的Set
中移除关联的onSuccess
;在您的onFailure
中,您将对CloseHandler
至Set
所有待处理的cancel()
进行迭代。总的来说,在Request
方法中处理getStatusCode() == 0
案例更容易。