使用twitter hosebird时的java.lang.NoClassDefFoundError

时间:2014-12-18 03:48:10

标签: twitter-streaming-api twitter-hbc

我正在尝试使用Twitter Streaming API,以便我可以实时过滤一些推文并显示。 我正在尝试关注https://github.com/twitter/hbc

我不习惯使用Maven,所以我在http://www.java2s.com/Code/Jar/h/Downloadhbccore140jar.htm找到了这个jar文件。我只是将它添加到我的构建路径并运行以下代码。

 BlockingQueue<String> queue = new LinkedBlockingQueue<String>(10000);
     StatusesFilterEndpoint endpoint = new StatusesFilterEndpoint();

但是,我收到以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/client/methods/HttpUriRequest
    at com.twitter.hbc.core.endpoint.BaseEndpoint.<init>(BaseEndpoint.java:40)
    at com.twitter.hbc.core.endpoint.DefaultStreamingEndpoint.<init>(DefaultStreamingEndpoint.java:35)
    at com.twitter.hbc.core.endpoint.StatusesFilterEndpoint.<init>(StatusesFilterEndpoint.java:34)
    at com.twitter.hbc.core.endpoint.StatusesFilterEndpoint.<init>(StatusesFilterEndpoint.java:27)
    at StreamingApi.main(StreamingApi.java:36)
Caused by: java.lang.ClassNotFoundException: org.apache.http.client.methods.HttpUriRequest
    at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360)

我甚至尝试使用Maven编译并将编译后的类转换为jar文件,然后使用。但是,我得到了同样的错误。看起来很少有内部依赖关系无法解决。

有人可以帮助我。提前谢谢。

2 个答案:

答案 0 :(得分:0)

似乎缺少包含必要的jar文件httpclient.jar

Download from here

答案 1 :(得分:0)

很难手动找到每个jar并添加到构建路径并进行测试。所以,我终于学会了使用Maven - https://github.com/twitter/hbc

然而,Guava库是一个旧库并产生了一些错误。我使用了来自https://code.google.com/p/guava-libraries/的Guava-18.0,它运行正常。