2016-06-23 11 views
2

Ich versuche, einen einfachen WebService Testing mit HTTPClient zu schreiben. Ich habe alle meine Gläser geladen, aber die obige Fehlermeldung erhalten.Ausnahme im Thread "Haupt" java.lang.NoSuchFieldError: INSTANCE

Warum erhalte ich diese Fehlermeldung?

Hier ist der Code:

package HTTPClientTest; 

import java.io.IOException; 
import org.apache.http.HttpResponse; 
import org.apache.http.HttpStatus; 
import org.apache.http.client.ClientProtocolException; 
import org.apache.http.client.methods.HttpGet; 
import org.apache.http.client.methods.HttpUriRequest; 
import org.apache.http.impl.client.HttpClientBuilder; 
import org.junit.Assert; 


public class RESTTester { 

    public static void main (String args[]) { 

    String restURL_XML = "http://parabank.parasoft.com/parabank/services/bank/customers/12212/"; 


    try { 

    testStatusCode(restURL_XML); 

    } catch (ClientProtocolException e) { 

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


public static void testStatusCode(String restURL) throws ClientProtocolException, IOException { 
    HttpUriRequest request = new HttpGet(restURL); 
    HttpResponse httpResponse = HttpClientBuilder.create().build().execute(request); 
    Assert.assertEquals(httpResponse.getStatusLine().getStatusCode(),HttpStatus.SC_OK); 
    } 

} 

Unten ist der Fehler Stacktrace, gefunden

Exception in thread "main" java.lang.NoSuchFieldError: INSTANCE 
    at org.apache.http.conn.ssl.SSLConnectionSocketFactory.<clinit>(SSLConnectionSocketFactory.java:144) 
    at org.apache.http.impl.client.HttpClientBuilder.build(HttpClientBuilder.java:966) 
    at HTTPClientTest.RESTTester.testStatusCode(RESTTester.java:37) 
    at HTTPClientTest.RESTTester.main(RESTTester.java:22) 
+0

Können Sie Ihre Stack-Trace mit mir teilen? Ich kann nichts ** ohne das tun. –

+0

@Chuchoo Bitte bearbeiten Sie den StackTrace in die Frage .. – Sid

Antwort

2

Ich habe oben Fehler, weil ich mehrere ältere Versionen von HTTPClient in meinem Projekt hatte. Ich habe ältere Versionen von HTTPClient entfernt und jetzt ist die Fehlermeldung verschwunden.

+0

Ich hatte den gleichen Grund. – Antinous

2

von Ihrem Stack-Trace analysieren, ich Ihr Programm aus gut geschrieben wird. Es scheint, dass Apache HTTP APIs falsch kompiliert wurden. Vielleicht wurde das Paket org.apache.http.impl.client gegen verschiedene Version kompiliert, als Sie verwenden? Aktualisieren Sie beide Pakete auf ihre neuesten Versionen und versuchen Sie es erneut. Melden Sie es dem HTTPClient Bug Tracker.

Verwandte Themen