Tuesday, 20 February 2018

Jersey Client was causing High CPU utilisation So Use Simple HTTPURLConnection

Old Code with jersey version with High CPU utilization issue.

WebTarget webTarget = demo(urlConnectivity).target(urlConnectivity.getUrl()).queryParam( "Address", request); Invocation.Builder invocationBuilder = webTarget.request(MediaType.APPLICATION_JSON_TYPE) .header("Demo-userid", requestHeader.getUserid()).header("Demo-requestID", requestHeader.getRequestID()) .header("Demo-requestTimestamp", Utilities.getXMLGregorianCalendarForCurrentTime()) .header("Demo-conversationID", requestHeader.getConversationID()) .header("Demo-activityName", requestHeader.getActivityName()) .header("Demo-senderURI", requestHeader.getSenderURI()) .header("Demo-messageID", requestHeader.getMessageID()); response = invocationBuilder.get();

Fix:- HTTPClient code to overcome Jersey overloading the classes .

HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); conn.setConnectTimeout(urlConnectivity.getConnTimeout()); conn.setReadTimeout(urlConnectivity.getReadTimeout()); conn.setRequestProperty("Accept", "application/json; charset=utf-8"); BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream())); StringBuilder sb = new StringBuilder(); String line; while ((line = rd.readLine()) != null) { sb.append(line + "\n"); } rd.close();

if (connection.getResponseCode() != HttpStatusCodes.OK.getStatusCode()) {
}

Pom file update.

somedemo lib-xml-http

info.cukes gherkin

----------------------------------

final HttpGet httpget = new HttpGet(uri);
final StopWatch stopWatch = new StopWatch();
stopWatch.start();
response = defaultHttpClient.execute(httpget);

ACTUALLY WE HAVE CHOICE TO GO WITH APACHE HTTPCLIENT AS WELL.

No comments: