1

我正在与googleapp. 在我的项目中,我从 LinkedIn 获取连接。它在本地工作正常,但是当我部署googleappengine它时它不起作用。我的控制从 http 转到 https(LinkedIn Login Page ),当时我的会话值为空,请帮助我。

            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请帮助我

4

1 回答 1

0

GAE 是一个分布式系统。因此,您的请求可以在多个启动的实例中的任何一个上处理。不同实例之间的公共会话数据是使用 DataStore 持久性完成的。当您将某些内容放入会话时,它实际上存储在 DataStore 中。这意味着属性应遵循 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 中并在以后访问。

于 2012-10-24T21:26:48.897 回答