Java GWT-在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

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

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代理。