Necesito reintentar enviar una solicitud GWT RPC si falla (cualquier código de respuesta distinto de HTTP 200). Las razones son complejas, así que no daré más detalles sobre eso. Lo que tengo hasta ahora es que trato a todas las respuestas de solicitud en el mismo lugar como este:Cómo reenviar una solicitud GWT RPC si falla (o cómo crear una solicitud RPC persistente)?
// 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);
}
});
}
});
Por lo tanto, utilizando el método httpResponseOkHandler, puedo coger fallos HTTP. Pero, ¿hay alguna manera de "volver a lanzar" la Solicitud, es decir, intentar nuevamente? No quiero almacenar los parámetros de alto nivel de la solicitud de RPC, preferiría usar el contenido de la solicitud que ya estaba en línea y listo para volver a enviar.
¿Alguna idea?
¿Qué es requestValidation? Es un mapa? –
Sí, un MAP sencillo. Tal vez no es la solución más elegante, si tiene algo que proponer, estaría encantado de verlo. –