Twitter4jのAPIを使用してトレンドを取得する際のエラー

このQ&Aのポイント
  • 現在、Google App Engineでtwitter4jのAPIを使用してtwitterのトレンドを取得しようとしています。
  • しかし、twitter4jのバージョンによる互換性の問題でエラーが発生し、サーバーエラーが発生しています。
  • 解決策をご教授いただけないでしょうか。
回答を見る
  • ベストアンサー

現在Google App Engineにてtwitter4jのAPIを

現在Google App Engineにてtwitter4jのAPIを使用してtwitterのトレンドを取得して表示するjspの画面作成をやっています。 そこで以下のエラーが取れずに、サーバーエラーとなるため困っています。 ◆エラー内容 ------------------------------------------------------------- java.lang.IncompatibleClassChangeError: Expected static method twitter4j.http.BASE64Encoder.encode([B)Ljava/lang/String; at twitter4j.http.BasicAuthorization.encodeBasicAuthenticationString(BasicAuthorization.java:59) at twitter4j.http.BasicAuthorization.<init>(BasicAuthorization.java:50) at twitter4j.TwitterFactory.getInstance(TwitterFactory.java:87) at com.twitter.Turuter.getTwitterTrends(TestTwitter.java:110) at org.apache.jsp.test_jsp._jspService(test_jsp.java:72) ・・・ ------------------------------------------------------------- ◆TestTwitter.java:110 ------------------------------------------------------------- public List<String> getTwitterTrends(){ boolean isExcludeHashTags = true; TwitterFactory tf = new TwitterFactory(); Twitter twitter = tf.getInstance(id, pwd); 【Line:110】 ------------------------------------------------------------- 環境は以下の通りです。 Eclipse:3.4.2 JDK:1.6.0_20 AppEngine SDK:1.3.3.1 GWT SDK:2.0.3 twitter4j:2.1.3 「java.lang.IncompatibleClassChangeError」はコンパイラのバージョンが異なるメソッドの呼び出しなどで出てしまう様ですが、twitter4jのMANIFESTでは「Build-Jdk: 1.6.0_17」と書かれています。SDKのバージョンは上記環境のバージョンと「1.6.0_20」を試しましたが、どちらも同様のエラーでした。 どなたか解決方法をご教授頂けないでしょうか。よろしくお願いします。

  • Java
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • _ranco_
  • ベストアンサー率58% (126/214)
回答No.1

twitter4j.http.BASE64Encoderというクラスはどこにあるのかなぁ? 2.1.3でなく、安定版の2.1.2を使ってみたら? あるいは、twitter4jのフォーラムやMLなどで質問してみるとか。 (Twitter APIなんて、私の日常にはない世界なので、抽象的にしかお答えできません。)

turusan_yn
質問者

補足

回答ありがとうございます。 twitter4j.http.BASE64Encoderクラスは twitter4j.internal.http.BASE64Encoderにあるようです internalってのを挟んでるのでのが分からないのですが。 twitter4jのバージョンは2.1.2と2.1.0も使ってみました。 2.1.2では同様のエラーが発生しました。 2.1.0は「java.lang.NoSuchMethodError: twitter4j.TwitterFactory.getInstance(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;」となりました。 もう少しこちらでどなたか回答頂けないか待ってみることにします。 それでも解決しない場合にはそちらを利用してみようと思います。

関連するQ&A

  • JAVA twitter4j エラー

    JAVA twitter4j エラー JAVA初心者です。 http://d.hatena.ne.jp/regeek/20100511/1273599348 で公開されているソースなのですが、コンパイルはとおるのですが、 実行する時に以下のようなエラーをはき、困っています。 ############################## 上のサイトからソースをコピペする(現在のディレクトリをnowとします) /now/Application.java /now/LoginDialog.java /now/TimeLine.java twitter4j-2.1.2.jarを /now/twitter/twitter4j-2.1.2.jarに置く $javac -classpath twitter/twitter4j.jar *.java $java Application ###←ここで以下のようなエラーがでます Exception in thread "main" java.lang.NoClassDefFoundError: twitter4j/TwitterException Caused by: java.lang.ClassNotFoundException: twitter4j.TwitterException at java.net.URLClassLoader$1.run(URLClassLoader.java:217) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:205) at java.lang.ClassLoader.loadClass(ClassLoader.java:321) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) at java.lang.ClassLoader.loadClass(ClassLoader.java:266) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:334) 環境は $java -versionで以下の通り java version "1.6.0_18" OpenJDK Runtime Environment (IcedTea6 1.8) (6b18-1.8-0ubuntu1) OpenJDK Server VM (build 14.0-b16, mixed mode) $javac -versionで以下の通り javac 1.6.0_18 です。 個人的には sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) とあるので、これはもしやUbuntuのOpenJDK Runtimeではだめなのか? と考えているのですが・・・ どなたか解決方法をご教授頂けないでしょうか。よろしくお願いします。

    • ベストアンサー
    • Java
  • [JAVA]ProcessBuilderで「java -version」を実行できない

    以下のプログラムで「java -version」を実行しようとするとエラーになります。「java」だけですと実行できますが「-version」をつけるとエラーになります。 ---プログラムの内容--- import java.io.*; public class test4518 { public static void main(String[] args) throws Throwable{ ProcessBuilder pb = new ProcessBuilder(new String[]{"java -version"}); Process p = pb.start(); BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream())); String line; while ((line = br.readLine()) != null) { System.out.println(line); } } } ーーーエラーの内容ーーー Exception in thread "main" java.io.IOException: CreateProcess: "java -version" error=2 at java.lang.ProcessImpl.create(Native Method) at java.lang.ProcessImpl.<init>(Unknown Source) at java.lang.ProcessImpl.start(Unknown Source) at java.lang.ProcessBuilder.start(Unknown Source) at test4518.main(test4518.java:5)

    • ベストアンサー
    • Java
  • Javaでコンパイルできなくなりました

    javaでコンパイルできなくなりました。今まではJava2 SDK バージョン1.4.2_03をインストールしてコマンドプロンプトからjavac、javaコマンドを用いコンパイル、実行していました。 そして、Eclipse(バーション3.0)というIDE環境に興味を持ちインストールした後にとりあえずもう一度コマンドプロンプトからjavacコンパイルしてみたらエラーがでるようになりました。 ソースを書くと長くなってしまうので簡単に説明すると、String sに"Hello World"を代入してSystem.out.println()で表示させるだけのプログラムです。Eclipseをインストールする前は実行できたのでソースに問題があるという事はありません。エラーメッセージは以下のような感じでした //エラーメッセージ 検出値 : java.lang.String 期待値 : String String s = "Hello World"; その後にソースで String s="Hello World";としていた行を java.lang.String s = "Hello World";に変更しました するとjavacではエラーが出なくなるのですがjavaコマンドで実行すると Exception in thread "main" java.lang.NoSuchMethodError: main というメッセージが出て実行できないです。 環境変数は、SDKインストール後、PATHC:\j2sdk1.4.2_03\bin;を加え、Eclipseインストール後は何も変更していません。 何が問題なのでしょうか?お願いします。

    • ベストアンサー
    • Java
  • JSPのデバッグの方法がわかりません。

    JSPのデバッグの方法というのは一般的にどのようにされるのでしょうか? サーブレットの方は、部分部分にSystem.out.println()を記述してうまくその処理が走っているかを確認しているのですが、JSPだと下記のような   --------------------------------------------------- Error: 500 Internal Servlet Error: javax.servlet.ServletException at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:461) at SyainMenteWeb._0002fSyainMenteWeb_0002ffrmSyainMente_0002ejspfrmSyainMente_jsp_12._jspService(_0002fSyainMenteWeb_0002ffrmSyainMente_0002ejspfrmSyainMente_jsp_12.java:973) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:119) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.jasper.servlet.JspServlet$JspCountedServlet.service(JspServlet.java:130) (一部略) Root cause: java.lang.NullPointerException at SyainMenteWeb._0002fSyainMenteWeb_0002ffrmSyainMente_0002ejspfrmSyainMente_jsp_12._jspService(_0002fSyainMenteWeb_0002ffrmSyainMente_0002ejspfrmSyainMente_jsp_12.java:127) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:119) (一部略) ------------------------------------------------------------------- エラーが出てしまい、どの辺でエラーが発生したのか特定できません。 なにかデバッグする良い方法はないでしょうか? よろしければご教授お願い致します。

  • javaの実行時のエラー

    javaを使って圧縮プログラムを作ったのですがコンパイルは通るのに実行時に Exception in thread "main"java.lang.StringIndexOutOfBoundsException: String index out of range: 80 at java.lang.String.charAt(String.java:455) at ashuku.char1(ashuku.java:51) at ashuku.kensa1(ashuku.java:23) at ashuku.main(ashuku.java:9) というエラーが出ます。このエラーの意味は何なのですか?教えてください。プログラムが長くて載せられないので、このエラーが出たときに何をチェックすればいいか教えてもらえると助かります。お願いします

    • ベストアンサー
    • Java
  • Java J2SDK J2SE SE EE ME の違いについて

    JavaによるWebアプリケーションを始めようと思い、Java、Tomcatをインストールしようと思います。 購入したテキストにはJ2SDK(j2sdk-1_4_2_13-windows-i8\589.exe)、 Tomcat(jakarta-tomcat-4.1.27-LE-jdk14.exe)をインストールせよとあり、指示されたHPを入力すると、sunのホームページ http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/index.html にはJ2SEとなっていますし、ダウンロードのメニュをクリックすると、 SE、EE、MEと色々あります。 また、 http://java.sun.com/javase/downloads/index.jsp を見に行くと、最新バージョンはJDK6となっています。 色々あって迷っています。 どれをインストールすればよいか、ご教授お願いします。

    • ベストアンサー
    • Java
  • 複数のJDKを同一マシンに共存させたい

    複数のJDKを同一マシンに共存させたいのですが、方法がわかりません。 [インストールしているマシンの環境] OS:WindowsXP Professional JDK: 1つ目)C:\jdk1.3.1_04 2つ目)C:\j2sdk1.4.2 ちなみに、環境変数を切り替えてみたのですが、上手くいきませんでした。 具体的には、環境変数:JAVA_HOMEを「C:\jdk1.3.1_04」と「C:\j2sdk1.4.2」に切り替えてから「java -versionコマンド」で確認してみましたが、どちらの場合も以下の結果になってしまいます。 どうすればいいのかわかりません。 よろしくお願いします。 >java -version java version "1.3.1_01" Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1_01) Java HotSpot(TM) Client VM (build 1.3.1_01, mixed mode)

    • ベストアンサー
    • Java
  • java.lang.StringIndexOutOfBoundsException・・・?

    JAVAで作成したプログラムを実行すると 「java.lang.StringIndexOutOfBoundsException: String index out of range: 3 at java.lang.String.substring(String.java:1500)」 とエラーが表示されます。 この意味ってなんなのでしょうか?

  • 無線LANノートパソコンの変数値の設定について

    デスクトップPCの設定は先の通りなのですが、 無線ラン接続のノートPCの変数値にjava -versionと入力すると、 Error occurred during inifialization of VM java/lang/NoClassDefFoundError:java/lang/Obgect と表示されてjavaのバージョンが表示されません。 デスクと同じようにユーザーの環境変数に新規で、 変数名 Path 変数値 C:\j2sdk1.4.2_<version >\bin と設定したのですが、なぜでしょうか? Cドライブにj2sdk1.4.2のフォルダーが確かにあります。 javaの勉強をするのにノートの方を多く使いますので宜しくお願いします。

    • ベストアンサー
    • Java
  • サーブレットのコンパイルエラー

    会社の開発環境でコンパイルできたサーブレットを 自宅でコンパイルしようとすると、下のエラーが出てしまい困っています。だれか知恵を貸してください。 ちなみに自宅の開発環境は j2sdk1.4.0とtomcat3.2.3 です。 よろしくお願いします。 ----------------------------------- ReserveControlServlet.java:26: シンボルを解釈処理できません。 シンボル: メソッド setCharacterEncoding (java.lang.String) 位置 : javax.servlet.http.HttpServletRequest の インタフェース request.setCharacterEncoding("JISAutoDetect"); ^ ReserveControlServlet.java:33: シンボルを解釈処理できません。 シンボル: メソッド getRequestDispacher (java.lang.String) 位置 : javax.servlet.ServletContext の インタフェース sc.getRequestDispacher("/index.jsp").forward(request, response); ------------------------------------

    • ベストアンサー
    • Java

専門家に質問してみよう