GWT - 在RPC服务调用期间获取会话

时间:2012-08-26 23:21:29

标签: java google-app-engine session gwt servlets

我尝试在第一次调用RPC服务时获取会话信息。

public class MyServiceImpl extends RemoteServiceServlet implements
MyService {

    public MyServiceImpl() {
        HttpServletRequest req = getThreadLocalRequest();
        // req = null here
    }
}

客户方,我打了一个简单的电话:

MyServiceAsync service = GWT.create(MyService.class);

在第一次RPC调用期间是否有其他解决方案来获取HttpServletRequest?

谢谢。

1 个答案:

答案 0 :(得分:1)

您正在servlet的构造函数中调用getThreadLocalRequest(),该函数仅在servlet初始化时调用一次。那时请求不可用。

您需要覆盖每次RPC调用时调用的processCall(String)方法。

public class MyServiceImpl extends RemoteServiceServlet implements MyService {

    @Override
    public String processCall( String payload ) {
        HttpServletRequest req = getThreadLocalRequest();
        HttpSession session = req.getSession();
    }
}