0

您好我正在使用 Java Spring 和 JSF 构建一个 Web 应用程序。我正在使用 twitter 功能登录。

我正在使用 Twitter4J。下面是我的代码:

索引.java::

public String getLoginTwitter() throws TwitterException, IOException
{           
    twitter = new TwitterFactory().getInstance();
    twitter.setOAuthConsumer("XXXXXXXXXXX", "XXXXXXXXXXXXXXXXX");

    RequestToken requestToken = twitter.getOAuthRequestToken();

    token = requestToken.getToken();
    tokenSecret = requestToken.getTokenSecret();

    session = (HttpSession)FacesContext.getCurrentInstance().getExternalContext().getSession(true);
    session.setAttribute("token", token);
    session.setAttribute("tokenSecret", tokenSecret);

    System.out.println("sess"+session.getAttribute("token"));

    ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
    externalContext.redirect(requestToken.getAuthorizationURL());  

    return null;      
}

此代码将用户发送到登录页面。它工作正常。我在会话中保存了令牌和令牌秘密。到此为止还好。下面是Callback url servlet的编码:

public String getTwitterInfo() throws TwitterException
{
    System.out.println("sess1"+session.getAttribute("token"));
    return null;
} 

当我想从会话中访问这些令牌时,我得到了 Nullpointer 异常。

谁能告诉我正确的方向。提前致谢。

4

1 回答 1

0

我找到了我的答案。实际上 twitter 的回调 url 不支持 localhost。这就是为什么我使用 127.0.0.1 而不是 localhost。出于这个原因,会话给了我一个空指针异常。当我尝试从浏览器使用 localhost 运行它时,它工作正常。

于 2012-09-06T10:31:09.387 回答