java
1 2<%@ page import="twitter4j.*,twitter4j.auth.*" contentType="text/html; charset=UTF-8" session="true"%><!DOCTYPE html> 3<html>
上のように宣言しているのですが、エラーメッセージとして
Twitter cannot be resolved to a type
TwitterFactory cannot be resolved to a type
RequestToken cannot be resolved to a type
AccessToken cannot be resolved to a type
となりインポートに失敗しているようです。
ビルドパスからtwitter4j.core.jarは通していてjspでないjavaは実行できましたがjspでは上の理由からかコンパイルエラーとなってしまっています。
jsp
1エラー 2<%@ page import="twitter4j.*,twitter4j.auth.*" contentType="text/html; charset=UTF-8" session="true"%><!DOCTYPE html> 3<html> 4<head> 5 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 6</head> 7<body><% 8//Twitter4Jを初期化 9 10Twitter twitter = new TwitterFactory().getInstance(); 11twitter.setOAuthConsumer("ST1*********ueh", "J00s5Ic**********NI4"); 12if ("authorize".equals(command)) { 13 //OAuth認可、まずリクエストトークンを取得 14 RequestToken requestToken = twitter.getOAuthRequestToken(request.getRequestURL() + "?command=callback"); 15 session.setAttribute("requestToken", requestToken); 16 response.sendRedirect(requestToken.getAuthorizationURL()); 17} else if ("callback".equals(command)) { 18 // Twitterからコールバックを受け取った 19 //アクセストークンを取得してセッションに格納 20 AccessToken accessToken = twitter.getOAuthAccessToken((RequestToken)session.getAttribute("requestToken")); 21 session.setAttribute("accessToken", accessToken); 22 //リクエストトークンは不要(無効)になったので破棄 23 session.removeAttribute("requestToken"); 24} else if ("tweet".equals(command)) { 25 // ツイートする 26 twitter.setOAuthAccessToken((AccessToken)session.getAttribute("accessToken")); 27 request.setCharacterEncoding("UTF-8"); 28 twitter.updateStatus(request.getParameter("tweet")); 29 out.print("ツイートしました"); 30} else if ("logout".equals(command)) { 31 //セッションに格納されているアクセストークンを破棄してログアウト 32 session.removeAttribute("accessToken"); 33} 34%> 35<% 36if (null != session.getAttribute("accessToken")) { 37 //アクセストークンがセッションに存在するのでOAuth認可済 38%> 39 <form action="oauth_authorize.jsp" method="POST"> 40 いまどうしてる? <input type="text" name="tweet" size="50"/><br> 41 <input type="hidden" name="command" value="tweet"/> 42 <input type="submit" value="ツイート"/> 43 </form> 44 <a href="?command=logout">ログアウト</a> 45<% 46} else { 47%> 48 <a href="?command=authorize">OAuth認可する</a> 49<% 50}%> 51</body> 52</html>
このようにtwitter4j.* と宣言してしまうと失敗するのかと考えtwitter4j.Twitterとも宣言してみましたがうまくいきません。
しかし下のjavaのプログラムではなぜかimportできており原因がわからずにいます。
java
1うまくいく 2package twitter3; 3import java.io.BufferedReader; 4import java.io.IOException; 5import java.io.InputStreamReader; 6 7import twitter4j.Status; 8import twitter4j.Twitter; 9import twitter4j.TwitterException; 10import twitter4j.TwitterFactory; 11 12public class SimpleTweet { 13 public static void main(String[] args) throws IOException, TwitterException { 14 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 15 String tweet = ""; 16 while(tweet.isEmpty()) { 17 System.out.print("今何してる ? : "); 18 tweet = br.readLine(); 19 if(tweet.length() > 140) { 20 System.out.println("字数制限を超えています。"); 21 tweet = ""; 22 continue; 23 } 24 } 25 26 Twitter twitter = new TwitterFactory().getInstance(); 27 Status status = twitter.updateStatus(tweet); 28 System.out.println(status.getUser().getScreenName() + " として投稿しました : " + status.getText()); 29 30 br.close(); 31 } 32}
あなたの回答
tips
プレビュー