Existe una solución, pero no es fácil (por ejemplo, no se puede cambiar un solo parámetro para que funcione). GWT está utilizando JS XMLHttpRequest normal bajo el capó. En GWT hay un tipo de superposición para él llamado com.google.gwt.xhr.client.XMLHttpRequest. Esta clase se usa para enviar solicitudes al servidor a través de HTTP. Cada JS XMLHttpRequest se inicializa primero mediante el método de llamada abierto. Este método tiene pocos parámetros, pero el tercer parámetro especifica si la solicitud debe ser asincrónica. Si lo cambia a falso, la solicitud será sincrónica.
Pero GWT-RPC no utiliza esta clase directamente, sino que la usa a través de RpcRequestBuilder, y esta clase tampoco está utilizando XMLHttpRequest directamente, está utilizando RequestBuilder.
Lo que tendrá que hacer es crear una versión personalizada de RpcRequestBuilder y RequestBuilder (que utilizará XMLHttpRequest inicializado para que sea síncrono).
Puede establecer el generador RPCRequest en su instancia de servicio GWT-RPC, lanzándolo al ServiceDefTarget.
¿Aún desea tener solicitudes GWT-RPC sincrónicas?
No lo hagas. Encontrar una solución asincrónica para su problema es mejor. –
"Antes que nada, sé que hacer una llamada síncrona es" incorrecto ", y sé que" no es posible ". – caarlos0
Es posible, pero no es fácil, ¿realmente quieres hacerlo? – jusio