2012-02-23 109 views
2

我有一个GWT + Spring Security网络应用程序。我试图补充:GWT - 弹簧安全 - 会话超时

<security:session-management invalid-session-url="/X.html"/> 

但是,当我尝试测试这个。看来我看到:

com.google.gwt.user.client.rpc.InvocationException 

带有消息作为X.html的HTML内容。有人可以请建议如何解决这个问题吗?

+0

什么是你期待看到? GWT通过ajax RPC调用与服务器通信,它不会将您的浏览器重定向到X.html。 – Strelok 2012-02-23 02:41:06

+0

我实际上期望重定向到登录页面 - 例如 - X.html – ankurvsoni 2012-02-23 03:19:14

回答

1

由于GWT通过Ajax RPC请求与服务器通信,浏览器将不会被重定向到X.html。如果您的服务电话需要做的是,如果他们没有被授权并在void onFailure(Throwable caught)AsyncCallback的方法中处理,则会抛出异常。

+0

您知道为什么当GWT执行Ajax RPC请求时,InvocationException的消息是为什么X.html的html内容? – ankurvsoni 2012-02-24 02:06:55

1

如果你想重定向到/X.html尝试:

Window.Location.replace(GWT.getHostPageBaseURL()+"X.html"); 

但是,如果你想发送请求到服务器使用RequestBuilder:

String url = GWT.getHostPageBaseURL() + "/X.html"; 

RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, URL.encode(url)); 

try { 
    Request request = builder.sendRequest(null, new RequestCallback() { 
    public void onError(Request request, Throwable exception) { 
     // invalid request 
    } 

    public void onResponseReceived(Request request, Response response) { 
     if (200 == response.getStatusCode()) { 
      // success 
     } else { 
      // sth went wrong 
     } 
    } 
}); 
} catch (RequestException e) { 
    // couldn't connect to server 
}