Details
-
Bug
-
Status: Resolved
-
Critical
-
Resolution: Fixed
-
4.0-alpha1
-
None
Description
here is an example code to use the HTTP AsyncClient and seeing an exception. Please also let me know how to deal with this issue,
/*
- To change this template, choose Tools | Templates
- and open the template in the editor.
*/
package httpanalysis.apache;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.nio.client.DefaultHttpAsyncClient;
import org.apache.http.impl.nio.conn.PoolingClientConnectionManager;
import org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor;
import org.apache.http.nio.client.HttpAsyncClient;
import org.apache.http.nio.conn.scheme.Scheme;
import org.apache.http.nio.conn.scheme.SchemeRegistry;
import org.apache.http.nio.reactor.ConnectingIOReactor;
import org.apache.http.nio.reactor.IOReactorException;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.CoreConnectionPNames;
/**
*
- @author lokesh
*/
public class HttpAnalysis {
PoolingClientConnectionManager poolManager;
HttpAsyncClient httpclient = null;
private PoolingClientConnectionManager sessionManager;
/**
- @param args the command line arguments
*/
public static void main(String[] args) { HttpAnalysis analysis = new HttpAnalysis(); analysis.process(); }
public HttpAnalysis() {
try
catch (IOReactorException ex)
{ Logger.getLogger(HttpAnalysis.class.getName()).log(Level.SEVERE, null, ex); }}
private void process() {
try {
int numRequests = 10000;
httpclient.start();
long startTime = System.currentTimeMillis();
final CountDownLatch countDownLatch = new CountDownLatch(numRequests);
for (int i = 0; i < numRequests; i++) {
HttpGet request = new HttpGet("http://hc.apache.org/");
Future<HttpResponse> future = httpclient.execute(request, new HttpCallback(this, countDownLatch));
if(future == null){ countDownLatch.countDown(); }
System.out.println("Request number = " + i);
//sessionManager.closeExpiredConnections();
}
countDownLatch.await();
System.out.println((System.currentTimeMillis() - startTime));
System.exit(1);
} catch (Exception ex) { Logger.getLogger(HttpAnalysis.class.getName()).log(Level.SEVERE, null, ex); }
}
}
I cannot reproduce the problem. Code does not compile because HttpCallback class is not defined.
Oleg