我正在尝试使用Apache DefaultHttpClient来执行JSON POST请求,当我尝试实例化它时,它会给我一个NoClassDefFound错误。
HttpClient client = new DefaultHttpClient();
我在buildpath中包含了以下jar,
的HttpClient-4.2.5.jar 的HttpCore-4.2-alpha2.jar JSON-简单1.1.1.jar 流利-HC-4.2.5.jar HttpClient的缓存-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
答案 0 :(得分:2)
解答:我刚刚解决了这个问题,所以我只是回答帮助未来的灵魂。我使用的是http-core 4.2-alpha jar,其余的是使用4.2.5(http-client,http-client-cache,http-mime等)。我将http-core-4.2-alpha jar更新为http-core-4.2.5后,问题就消失了。你可以在网上找到maven repos中的jar。