に電話をかけREST URL
、応答を返すのにかかる時間を測定しようとしています。
DefaultHttpClient
からの応答を取得するために使用していREST URL
ます。
以下のプログラムでは、各スレッドが特定の範囲で動作します。同様に、各スレッドはその間1 - 100
で機能し、2 番目のスレッドはその間で機能します101 - 200
。
したがって、以下のコードでは、いつかは機能しますが、しばらくすると例外がスローされます
Failure initializing default SSL context
そして、このエラーも-
I/O exception (java.net.SocketException) caught when connecting to the target host: No buffer space available (maximum connections reached?): connect
ここで何か間違ったことはありますか?- または、より優れたクライアントを使用DefaultHttpClient
して RESTFUL 呼び出しを行うことができます。
以下は私のコードです-
class Task implements Runnable {
private DefaultHttpClient httpclient;
private HttpResponse response;
@Override
public void run() {
try {
for (int userId = id; userId < id + noOfTasks; userId++) {
httpclient = new DefaultHttpClient();
HttpGet httpGet = new HttpGet("http://localhost:8080/service/BEService/v1/get/USERID=10000/profile.ACCOUNT.SERVICE");
long start = System.nanoTime();
response = httpclient.execute(httpGet);
long end = System.nanoTime() - start;
HttpEntity entity = response.getEntity();
EntityUtils.consume(entity);
}
} catch (Exception e) {
LOG.error("Threw a Exception in " + getClass().getSimpleName(), e);
} finally {
httpclient.getConnectionManager().shutdown();
}
}
}
私のコードに何か問題がある場合。どうすれば改善できますか?