Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
失败后重新启动GWT-RPC请求_Gwt_Gwt Rpc - Fatal编程技术网

失败后重新启动GWT-RPC请求

失败后重新启动GWT-RPC请求,gwt,gwt-rpc,Gwt,Gwt Rpc,我正在使用RpcRequestBuilder拦截并对我在应用程序上所做的每个RPC进行一些常规修改。 有没有办法,如果我在我的RpcRequestBuilder上发现了一个可丢弃的,并且我知道我应该再次尝试做RPC,重新启动相同的RPC?这在理论上是可能的,我只是不知道如何再次启动RPC请求。 (是的,我会小心不要进入循环:)您是否尝试过在RequestBuilder上调用send() 在AICT中,唯一的问题是如果您有一个带有请求(或请求生成器)返回类型的异步方法:返回的请求将是来自第一个请求

我正在使用RpcRequestBuilder拦截并对我在应用程序上所做的每个RPC进行一些常规修改。 有没有办法,如果我在我的RpcRequestBuilder上发现了一个可丢弃的,并且我知道我应该再次尝试做RPC,重新启动相同的RPC?这在理论上是可能的,我只是不知道如何再次启动RPC请求。
(是的,我会小心不要进入循环:)

您是否尝试过在
RequestBuilder
上调用
send()

在AICT中,唯一的问题是如果您有一个带有
请求
(或
请求生成器
)返回类型的异步方法:返回的
请求
将是来自第一个请求的请求,第二个请求将被忽略,因此调用核心无法中止。

考虑到这种情况,您必须从
RpcRequestBuilder
create()
方法返回
RequestBuilder
的子类,覆盖
send()
以返回一个特殊的
请求
子类,该子类委托给真实的
请求
(并允许它被交换,以便您可以设置与重试相对应的服务)。

我实际上没有这样的异步服务,但因为第一个rpc失败(在异步回调上执行onFailure(Throwable)),这真的不应该是一个问题,对吗?作为第二个请求,将触发onSuccess并获得预期结果。我可以给你一个例子:假设我使用某种会话管理,并在每个rpc上验证会话的有效性。现在,如果会话被检测为“超时”,将显示一个登录框,在成功登录后,我想重复第一个rpc,即启动超时/登录屏幕的rpc。使用send()是否可行?