2012-05-14 39 views
0

我正在使用RpcRequestBuilder攔截並對我在應用程序上進行的每個RPC進行一些常規修改。 有沒有辦法,如果我在我的RpcRequestBuilder上遇到throwable,並且我知道我應該再次嘗試執行RPC,請重新啓動相同的RPC?這在理論上是可能的,我只是不知道再次啓動RPC請求的內容。 (是的,我會小心不要輸入一個循環:))失敗後重新啓動GWT-RPC請求

回答

0

你試過簡單地撥send()RequestBuilder

AFAICT,唯一的問題是,如果你有一個Request(或RequestBuilder)返回類型異步方法:返回Request將是第一次請求的一個,第二個請求將被忽略,因而couldn」不會被呼叫核心中止。
要允許這種情況下,你必須從你的RpcRequestBuildercreate()方法返回的RequestBuilder一個子類,覆蓋send()返回一個特殊Request子類,委託給真正Request(並允許它是交換,所以你可以設置一個相應的重試)。

+0

我其實沒有這樣的異步servicce,但自第一個rpc失敗(在AsyncCallback上執行onFailure(Throwable)),那真的不應該是個問題吧?作爲第二個請求,會觸發onSuccess和預期的結果。 我可以給你一個例子: 可以說我使用某種會話管理,並驗證每個rpc會話的有效性。現在,如果會話被檢測爲「超時」,則會顯示登錄框,並且在成功登錄後,我想重複第一個rpc,即發起超時/登錄屏幕的rpc。 這是可以使用send()嗎? –