jTwitter, oAuth и Google App Engine. NoClassDefFoundError

Я пытаюсь использовать jTwitter для получения oauth-экземпляра в твиттере с моим ключом / секретом потребителя и токеном / секретом доступа. Это хорошо задокументировано в javadoc здесь. Я скачал signpost, signpost-jetty и библиотеку jtwitter, но после развертывания и запуска сервлета я получаю сообщение об ошибке java.lang.NoClassDefFoundError: winterwell/jtwitter/OAuthSignpostClient Eclipse не жалуется на отсутствие класса, потому что он есть - я вижу это в самом файле JAR, который находится в моем проекте. Итак, я сказал, забудь, я попробую OAuthScribeClient вместо этого, но это породило ОЧЕНЬ ПОХОЖУЮ ОШИБКУ java.lang.NoClassDefFoundError: org/scribe/oauth/Token Это смущает меня еще больше, потому что у меня есть следующий код в моем Java-файле, и он компилируется без ошибок или предупреждений:

import org.scribe.oauth.Token;
Token token = new Token("myaccesstokeninfo", "accesstokensecret");

Понятно, что мне не хватает чего-то очень фундаментального, но я абсолютно не понимаю, что это может быть. Благодарю.

3 ответа

Решение

Обычно "NoClassDefFoundError" происходит, когда вы забыли скопировать все jar-файлы в каталог "/war/WEB-INF/lib", поэтому эти библиотеки будут недоступны со стороны сервера.

Xo4yHaMope, вероятно, прав.

Если вы работаете с Eclipse, но работаете с использованием веб-контейнера, тогда ваш путь к классам во время выполнения может отличаться от пути к классам вашего проекта, что может вызвать эту ошибку.

Чтобы закончить, Бен Уинтерс ответит, что я на самом деле сделал и работал, добавив jar в папку libs в проекте.

см. также здесь об иерархии папок.

Когда вы делаете это, затмение обычно добавляет jar к зависимостям Android перед запуском приложения. Я понимаю, что добавление jar в путь сборки сделает классы доступными только во время сборки

Другие вопросы по тегам