我尝试在第一次调用RPC服务时获取会话信息。
public class MyServiceImpl extends RemoteServiceServlet implements
MyService {
public MyServiceImpl() {
HttpServletRequest req = getThreadLocalRequest();
// req = null here
}
}
客户方,我打了一个简单的电话:
MyServiceAsync service = GWT.create(MyService.class);
在第一次RPC调用期间是否有其他解决方案来获取HttpServletRequest?
谢谢。
答案 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();
}
}