Gerenciamento de sessões em gwt

Estou usando o GWT para meu aplicativo do lado do cliente. No entanto, não sei como lidar com o gerenciamento de sessões. O aplicativo GWT reside em uma página, todas as chamadas do servidor são feitas via AJAX. Se uma sessão expirar no servidor. vamos supor que o usuário não tenha fechado o navegador e enviando alguma solicitação ao servidor usando RPC, como meu servidor notificou o aplicativo que a sessão expirou e que a parte do lado do cliente deve exibir a tela de login novamente? Meu código de amostra:

ContactDataServiceAsync contactDataService = GWT
                .create(ContactDataService.class);
        ((ServiceDefTarget) contactDataService).setServiceEntryPoint(GWT
                .getModuleBaseURL()
                + "contactDatas");

        contactDataService.getContact(2,
                new AsyncCallback<ContactData>() {
                    public void onFailure(Throwable caught) {
                                      //code to show error if problem in connection or redirect  to login page

                    }

                    public void onSuccess(ContactData result) {
                        displayContact(result);
                    }
                });

Se a sessão expirar, apenas será necessário mostrar a tela de login, caso contrário, será exibido algum erro usando Window.alert (

Como fazer isso e quais são todos os códigos necessários no lado do servidor e no cliente?

questionAnswers(6)

yourAnswerToTheQuestion