this.getThreadLocalRequest()在GWT中返回null
在servlet中调用this.getThreadLocalRequest()在GWT中返回null,gwt,Gwt,在servlet中调用getThreadLocalRequest()方法(扩展了RemoteServiceServlet)时,我总是得到null 在其他地方打电话: IUPS_LpnRPCServiceAsync service = GWT.create(IUPS_LpnRPCService.class); service.getUserInfoFromHeader(new AsyncCallbackSupport<String>(false) { @Override
getThreadLocalRequest()
方法(扩展了RemoteServiceServlet
)时,我总是得到null
在其他地方打电话:
IUPS_LpnRPCServiceAsync service = GWT.create(IUPS_LpnRPCService.class);
service.getUserInfoFromHeader(new AsyncCallbackSupport<String>(false) {
@Override
public void onSuccess(String remote_user) {
GWT.log("getting remote call");
defaultMainScreen.setUsername(remote_user);
GWT.log("remote_user = " + remote_user);
}
});
IUPS\u LpnRPCServiceAsync service=GWT.create(IUPS\u LpnRPCService.class);
service.getUserInfoFromHeader(新的AsyncCallbackSupport(false){
@凌驾
成功时公共无效(字符串远程用户){
日志(“获取远程呼叫”);
defaultMainScreen.setUsername(远程用户);
GWT.log(“远程用户=”+远程用户);
}
});
如果要访问HttpServletRequest对象,可以使用以下代码段:
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
public class UPS_LpnListRPCServiceImpl extends RemoteServiceServlet implements
IUPS_LpnRPCService {
...........
...........
public String getUserInfoFromHeader() {
ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes();
if (requestAttributes != null) {
HttpServletRequest req = requestAttributes.getRequest();
remote_user = req.getSession().getAttribute("j_username").toString();
}
}
.........
}
不要忘记将以下配置添加到web.xml以维护HttpSession,否则您将出现和IllegalStateException:
<listener>
<listener-class>
org.springframework.web.context.request.RequestContextListener
</listener-class>
</listener>
org.springframework.web.context.request.RequestContextListener
您是否在使用spring之类的服务器端技术?
<listener>
<listener-class>
org.springframework.web.context.request.RequestContextListener
</listener-class>
</listener>