web-dev-qa-db-ja.com

httpclient jarの競合。修正方法

//これは私のコードであり、プロキシの背後で作業しています...

import org.Apache.commons.io.IOUtils;
import org.Apache.http.HttpHost;
import org.Apache.http.HttpResponse;
import org.Apache.http.client.HttpClient;
import org.Apache.http.client.methods.HttpGet;
import org.Apache.http.impl.client.DefaultHttpClient;
import org.Apache.http.impl.client.HttpClients;
import org.Apache.http.impl.conn.DefaultProxyRoutePlanner;

{
HttpHost proxy = new HttpHost("proxyhost", 8082); 
DefaultProxyRoutePlanner routePlanner = new DefaultProxyRoutePlanner(proxy);
HttpClient client = HttpClients.custom().setRoutePlanner(routePlanner).build();
HttpResponse response = client.execute(request);}

//コンソールに次のエラーが表示されます

 Exception in thread "main" Java.lang.NoClassDefFoundError: org/Apache/http/ssl/SSLContexts
    at org.Apache.http.impl.client.HttpClientBuilder.build(HttpClientBuilder.Java:966)
    at TwitterFeeds.main(TwitterFeeds.Java:40)
    Caused by: Java.lang.ClassNotFoundException: org.Apache.http.ssl.SSLContexts
    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)
    ... 2 more

私は次のjarファイルを使用しています

httpclient-4.5.2.jar
httpcore-4.3.jar
17
Mohit Mehral

SSLContextsクラスは、httpclient 4.4の別のパッケージに再配置されました。

4.4以降

これを修正するには、httpcoreバージョンを少なくとも4.4にアップグレードしてください。

27
Arnaud

答えをご覧ください- スレッド「main」の例外Java.lang.NoClassDefFoundError:org/Apache/http/ConnectionReuseStrategy:

Httpcoreバージョンを4.4に更新します。それはあなたのために働くはずです。

3
asg