1

に電話をかけ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();
    }
    }
}

私のコードに何か問題がある場合。どうすれば改善できますか?

4

1 に答える 1