0

I have written Java API to perform request/response of JSON over http using apacheHTTP client library, Code is enlisted below. It is encountering some errors and exceptions, Can you please provide pointers, How to fix it? I am jinxed with the problem. I am using Eclipse Mars, Sun Oracle Java 8, Apache Tomcat 7.0.52, Ubuntu 14.04 as base system to produce this code.

    package bhawnas;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.utils.*;
import org.apache.commons.*;
import org.apache.http.impl.*;
import org.commonjava.web.json.*;
import org.apache.http.impl.client.HttpClientBuilder;

import org.json.JSONException;
import org.json.JSONObject;


@SuppressWarnings("unused")

public class SunSofProb {

    public static void main (String args[]) {



        //Exception Handling

        try {

            //create Http Client

        HttpClient httpClient = HttpClientBuilder.create().build();

          //Create fresh GET  request for mentioned URL in Prob Stmt


        HttpGet getRequest = new HttpGet ("http://surya-interview.appspot.com/message");

         // Add header to accept getRequest which accepts application/JSON data

        getRequest.addHeader("accept:X-Surya-Email-id:arunsingh.in@gmail.com", "application/json");

        //Execute request and fetch response

        HttpResponse response = httpClient.execute(getRequest);


        // Check for HTTP Response code 200/404/500

        if (response.getStatusLine().getStatusCode() != 200) {

            throw new RuntimeException("Failed:Http error code: " + response.getStatusLine().getStatusCode()); 
                    } 
    //  else {
            //throw new RuntimeException("Error reported code:" + response.getStatusLine().getStatusCode());        

                //  }                       

        //Capture GET complete application/json  body response

        BufferedReader br = new BufferedReader (new InputStreamReader((InputStream) response.getEntity().getContentType()));

        String output;
        System.out.println("================Output:===================");


        //iteration through simple JSON response and depict on console

        while ((output = br.readLine()) != null) {

            System.out.println(output);

        }


        } catch (ClientProtocolException e) {

            e.printStackTrace();
        } catch (IOException e) {

            e.printStackTrace();
        }


    }

}

In my view is there some library/jar to be added to classpath, thats why this run time error is occurring, Does I am using wrong environment, Kindly suggest fixers?

The error and exceptions are :

Exception in thread "main" java.lang.NoSuchFieldError: INSTANCE
    at org.apache.http.impl.io.DefaultHttpRequestWriterFactory.<init>(DefaultHttpRequestWriterFactory.java:52)
    at org.apache.http.impl.io.DefaultHttpRequestWriterFactory.<init>(DefaultHttpRequestWriterFactory.java:56)
    at org.apache.http.impl.io.DefaultHttpRequestWriterFactory.<clinit>(DefaultHttpRequestWriterFactory.java:46)
    at org.apache.http.impl.conn.ManagedHttpClientConnectionFactory.<init>(ManagedHttpClientConnectionFactory.java:69)
    at org.apache.http.impl.conn.ManagedHttpClientConnectionFactory.<init>(ManagedHttpClientConnectionFactory.java:81)
    at org.apache.http.impl.conn.ManagedHttpClientConnectionFactory.<clinit>(ManagedHttpClientConnectionFactory.java:56)
    at org.apache.http.impl.conn.PoolingHttpClientConnectionManager$InternalConnectionFactory.<init>(PoolingHttpClientConnectionManager.java:487)
    at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.<init>(PoolingHttpClientConnectionManager.java:147)
    at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.<init>(PoolingHttpClientConnectionManager.java:136)
    at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.<init>(PoolingHttpClientConnectionManager.java:112)
    at org.apache.http.impl.client.HttpClientBuilder.build(HttpClientBuilder.java:460)
    at bhawnas.SunSofProb.main(SunSofProb.java:47)
aruns
  • 1,049
  • 1
  • 8
  • 19
  • Check this similar problem http://stackoverflow.com/questions/30949201/httpclientbuilder-java-lang-nosuchfielderror-instance – jacks Sep 09 '15 at 08:23
  • @Nio Do you intend to say I am doing cocktail with code, I mean to say I am writing MAVEN code but I am running in simple Java environment.? Also, to me this is kind of bug in Apache Http Client library , can you create pointers and fixers? – aruns Sep 09 '15 at 08:42
  • Did you solved it if you did how ? – 2Big2BeSmall Nov 23 '15 at 14:20

0 Answers0