twitter4j 4.0.2 java.lang.NoClassDefFoundError:com / squareup / okhttp / OkHttpClient

时间:2014-09-25 12:08:13

标签: java twitter4j

我正在使用twitter4j 4.0.2

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)

如何让这个工作?

1 个答案:

答案 0 :(得分:1)

版本4.0.2似乎至少依赖于 okhttp 。这仅适用于 twitter4j-spdy-support 软件包,而不适用于 twitter4j 中的其他软件包。

pom.xml有:

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

如果您想使用 twitter4j-spdy-support ,那么您需要拥有okhttp JAR文件。如果您使用maven,使用maven运行您的应用程序将解决问题。

另一个选择是不使用spdy支持而不在类路径中。