Ich muss erneut versuchen, eine GWT-RPC-Anforderung zu senden, wenn sie fehlschlägt (jeder andere Antwortcode als HTTP 200). Die Gründe sind komplex, deshalb werde ich nicht näher darauf eingehen. Was ich bis jetzt habe, ist ich alle Anforderungsantworten an der gleichen Stelle wie folgt zu behandeln:Wie wird eine GWT-RPC-Anforderung erneut gesendet, wenn sie fehlschlägt (oder wie eine persistente RPC-Anforderung erstellt wird)?
// We override the RpcRequestBuilder.doSetCallback method and force your service to use it
// With this we can read the response headers if we need to.
((ServiceDefTarget)serviceRPC).setRpcRequestBuilder(new RpcRequestBuilder() {
@Override
protected void doSetCallback(RequestBuilder rb, final RequestCallback callback) {
super.doSetCallback(rb, new RequestCallback() {
@Override
public void onResponseReceived(Request request,
Response response) {
httpResponseOkHandler(callback, request, response);
}
@Override
public void onError(Request request, Throwable exception) {
httpResponseErrorHandler(callback, request, exception);
}
});
}
});
Also, mit httpResponseOkHandler Methode kann ich HTTP Ausfälle fangen. Aber gibt es eine Möglichkeit, die Anfrage "erneut zu versuchen", d. H., Versuchen Sie es erneut? Ich möchte die High-Level-Parameter der RPC-Anforderung nicht speichern, ich würde lieber den Anforderungsinhalt verwenden, der bereits gestreamt wurde und zum erneuten Senden bereit ist.
Irgendwelche Ideen?
Was ist requestValidation? Ist es eine Karte? –
Ja, ein einfacher MAP. Vielleicht nicht die eleganteste Lösung, wenn Sie etwas vorschlagen möchten, würde ich mich freuen, es zu betrachten. –