Java GWT-在RPC服务调用期间获取会话
我尝试在第一次调用RPC服务时获取会话信息Java GWT-在RPC服务调用期间获取会话,java,google-app-engine,session,gwt,servlets,Java,Google App Engine,Session,Gwt,Servlets,我尝试在第一次调用RPC服务时获取会话信息 public class MyServiceImpl extends RemoteServiceServlet implements MyService { public MyServiceImpl() { HttpServletRequest req = getThreadLocalRequest(); // req = null here } } 客户端,我打一个简单的电话: MyServiceA
public class MyServiceImpl extends RemoteServiceServlet implements
MyService {
public MyServiceImpl() {
HttpServletRequest req = getThreadLocalRequest();
// req = null here
}
}
客户端,我打一个简单的电话:
MyServiceAsync service = GWT.create(MyService.class);
在第一次RPC调用期间,是否有其他解决方案来获取HttpServletRequest
谢谢。您正在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();
}
}
我尝试了您的解决方案,但没有调用processCall方法。我是否使用了GWT.create(…)之外的其他调用解决方案?不调用它是什么意思?您需要在
服务
变量上调用一些RPC方法。您必须记住,MyServiceImpl
code是在服务器上运行的,而GWT.create(…)
是在客户端上运行的,因此没有会话或类似的内容。此时只创建一个Javascript代理。