3

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

public class MyServiceImpl extends RemoteServiceServlet implements
MyService {

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

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

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

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

谢谢你。

4

1 回答 1

1

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

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

public class MyServiceImpl extends RemoteServiceServlet implements MyService {

    @Override
    public String processCall( String payload ) {
        HttpServletRequest req = getThreadLocalRequest();
        HttpSession session = req.getSession();
    }
}
于 2012-08-26T23:27:59.167 回答