0

こんにちは、Java Spring と JSF を使用して Web アプリを構築しています。ツイッター機能でログインできなくなりました。

Twitter4Jを使っています。以下は私のコードです:

index.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 サーブレットのコーディングです。

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

セッションからこれらのトークンにアクセスしたい場合、Nullpointer Exception が発生します。

誰でも正しい方向を教えてもらえますか。前もって感謝します。

4

1 に答える 1

0

私は自分の答えを見つけました。実はtwitterのコールバックURLはlocalhostに対応していません。そのため、localhost の代わりに 127.0.0.1 を使用しています。そのため、セッションで null ポインター例外が発生しました。ブラウザから localhost を使用してこれを実行しようとすると、正常に動作します。

于 2012-09-06T10:31:09.387 に答える