创建DefaultHttpClient会导致NoClassDefFoundError错误

3
我正在尝试使用Apache DefaultHttpClient执行JSON POST请求,但在我尝试实例化它时,它给了我一个NoClassDefFound错误。
HttpClient client = new DefaultHttpClient();

我已经将以下JAR包包含在我的构建路径中:
httpclient-4.2.5.jar httpcore-4.2-alpha2.jar json-simple-1.1.1.jar fluent-hc-4.2.5.jar httpclient-cache-4.2.5.jar httpmime-4.2.5.jar org.apache.httpcomponents.httpclient_4.2.5.jar 当我尝试导入DefaultHttpClient时,没有任何问题。
   import org.apache.http.impl.client.DefaultHttpClient;

但是只有当我尝试按照上述提到的方式创建一个实例时才会出现这种情况。
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
    at org.apache.http.impl.client.AbstractHttpClient.<init>(AbstractHttpClient.java:187)
    at org.apache.http.impl.client.DefaultHttpClient.<init>(DefaultHttpClient.java:146)
    at AtlasService.main(AtlasService.java:53)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 3 more
1个回答

2

已解决:我刚刚解决了这个问题,现在回答一下以帮助未来的人。我使用的是http-core 4.2-alpha jar,而其他部分(http-client、http-client-cache、http-mime等)使用的是4.2.5版本。更新http-core-4.2-alpha jar到http-core-4.2.5后,问题就解决了。你可以在maven仓库在线找到这个jar文件。


我的问题在于我在Java项目中使用了Android的库的一个版本,我需要下载普通的Java版本来解决这个问题。 - David

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接