質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

0回答

399閲覧

ライブラリのimport に失敗しています

退会済みユーザー

退会済みユーザー

総合スコア0

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2018/08/21 08:18

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}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2018/08/21 22:19

contentTypeはなんのために設定していますか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問