java.lang.NoClassDefFoundError: twitter4j/Twitte | sola's note

sola's note

日ごろのメモを書いていきます。何か新しいものを作るために。

java.lang.NoClassDefFoundError: twitter4j/TwitterException
(タイトルに載りきらなかったので一応)

ハマりかけた

JavaアプリケーションとしてTwitter4jを用いたアプリが実行出来るのに
GAEのWebアプリケーションとして実行しようとすると

java.lang.NoClassDefFoundError: twitter4j/TwitterException

…(省略)…

Caused by: java.lang.ClassNotFoundException: twitter4j.TwitterException
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)

…(省略)…

at java.lang.ClassLoader.loadClass(ClassLoader.java:248)

…(省略)…

が発生する。
たまたま実行元がServletだったので
Servletのパスが悪いのか
クラスローダに問題があるのか



超意味わかんねぇ…

という状態。
でも、そもそもJavaアプリケーションとして実行出来るものが、
Servletから呼び出す事が出来ないのはおかしいだろう…と思って、
実行形式を気にして調べてみたら

陽昇れども地の底に光届かず

さんのページの

03. Twitter4Jの追加

を発見!
どうやらビルドパス指定するJarファイルは
warフォルダ配下にないといけない模様。(リンク参照

■以下引用■
実行可能のJARファイルであれば何処に配置されたライブラリであろうともエクスポート時に必須ライブラリがコピーなり抽出されますが、
GAEプラグインのデプロイの場合、warフォルダ以下のファイルのみを対象としているらしく、この中にコピーした上でビルドパス指定しなければ
ならないようです。
■引用終わり■

わかんないよねぇ…w