我正在使用googleapp
。在我的项目中,我从LinkedIn获取连接。它在本地工作正常,但是当我部署googleappengine
时,它不起作用。我的控制从http到https(LinkedIn登录页面),那时我的会话值为空,请帮助我。
OAuthService service = new ServiceBuilder()
.provider(LinkedInApi.class)
.apiKey("ln835u1zgg0c")
.apiSecret("I9Bz3lloYT8jlO6P").scope("r_network")
.callback("http://mygbuddy.appspot.com/CallBackUrl.jsp")
.build();
Token requestToken=service.getRequestToken();
HttpSession session=request.getSession();
session.setAttribute("service", service);
session.setAttribute("requesttoken", requestToken);
CallBackUrl.jsp
<%
out.println(session.getAttribute("service"););
%>
在jsp我得到了null请帮帮我
答案 0 :(得分:0)
GAE是一个分布式系统。因此,您的请求可以在多个实例启动时处理。使用DataStore持久性完成不同实例之间的公共会话数据。 当您将某些内容放入会话时,它实际上存储在DataStore中。这意味着atrributes应遵循DataStore持久性要求(https://developers.google.com/appengine/docs/java/datastore/entities)。
标准OAUthServiceImpl GAE类不可序列化(检查http://code.google.com/p/googleappengine/source/browse/trunk/java/src/main/com/google/appengine/api/oauth/OAuthServiceImpl.java?r=194)因此无法存储在DataStore中并在以后访问。