2014-09-25 22 views
0

我使用twitter4j 4.0.2twitter4j 4.0.2 java.lang.NoClassDefFoundError:COM/squareup/okhttp/OkHttpClient

ConfigurationBuilder cb = new ConfigurationBuilder(); 
cb.setOAuthConsumerKey(this.consumerKey); 
cb.setOAuthConsumerSecret(this.consumerSecret); 
cb.setOAuthAccessToken(this.accessToken); 
cb.setOAuthAccessTokenSecret(this.accessTokenSecret); 
this.twitter = new TwitterFactory(cb.build()).getInstance(); 

在這裏,我得到的錯誤,當我運行這個

Exception in thread "main" java.lang.NoClassDefFoundError: com/squareup/okhttp/OkHttpClient 
    at twitter4j.AlternativeHttpClientImpl.prepareClient(AlternativeHttpClientImpl.java:120) 
    at twitter4j.AlternativeHttpClientImpl.getConnection(AlternativeHttpClientImpl.java:60) 
    at twitter4j.HttpClientImpl.handleRequest(HttpClientImpl.java:88) 
    at twitter4j.AlternativeHttpClientImpl.handleRequest(AlternativeHttpClientImpl.java:104) 
    at twitter4j.HttpClientBase.request(HttpClientBase.java:53) 
    at twitter4j.HttpClientBase.get(HttpClientBase.java:71) 
    at twitter4j.TwitterBaseImpl.fillInIDAndScreenName(TwitterBaseImpl.java:128) 
    at twitter4j.TwitterImpl.verifyCredentials(TwitterImpl.java:545) 

如何讓這個工作?

+0

您是否將所有必需的jar文件添加到應用程序中以使其工作? – VinayVeluri 2014-09-25 12:08:53

+0

是包括twitter4j-core.jar添加,twitter4j-async.jar,twitter4j-媒體support.jar – 2014-09-25 12:13:46

回答

1

看來,版本4.0.2至少有okhttp的依賴。這是隻爲twitter4j-SPDY支持包真,而不是其他的twitter4j

pom.xml有:

 <dependency> 
     <groupId>com.squareup.okhttp</groupId> 
     <artifactId>okhttp</artifactId> 
     <version>1.5.1</version> 
    </dependency> 

如果你想使用twitter4j-SPDY支持,那麼你需要有okhttp JAR文件(S)。如果你使用maven,使用maven運行你的應用程序將解決問題。

而另一種選擇是不使用SPDY支持,沒有它在classpath。

+0

我刪除twitter4j-SPDY-support.jar和所有工作正常,@toomasr感謝。 – 2014-09-25 12:43:04

+0

這聽起來很棒,我也會編輯答案,包括一個解決方案是不使用spdy支持,如果你不需要的話。 – toomasr 2014-09-26 12:28:08