NoSuchFieldError INSTANCE at org.apache.http.impl.io.DefaultHttpRequestWriterFactory

java version "1.7.0_71" 
Gradle 2.1

Привет,

UPDATE:

Зависимости

gradle dependencies | grep httpcore
|    +--- org.apache.httpcomponents:httpcore:4.3.3
|    +--- org.apache.httpcomponents:httpcore:4.3.3
|    +--- org.apache.httpcomponents:httpcore:4.3.3
|    +--- org.apache.httpcomponents:httpcore:4.3.3
|    |         |    |         |    +--- org.apache.httpcomponents:httpcore:4.1 -> 4.3.3
|    +--- org.apache.httpcomponents:httpcore:4.3.3
|    |         |    |         |    +--- org.apache.httpcomponents:httpcore:4.1 -> 4.3.3

Означает ли это, что у меня 4.1, это мягкая ссылка на 4.3.3? Кажется странным, что когда я распечатываю загрузчик классов, он загружает 4.3.3:/home/steve/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpcore/4.3.3/f91b7a4aadc5cf486df6e4634748d7dd7a73f06d/httpcore-4.3.3.jar кажется очень странным.

Я продолжаю получать эту ошибку, когда я пытаюсь запустить мой httpClient. Все компилируется нормально.

java.lang.NoSuchFieldError: INSTANCE
        at org.apache.http.impl.io.DefaultHttpRequestWriterFactory.<init>(DefaultHttpRequestWriterFactory.java:52

Мой код очень прост, удален не важный код, чтобы он был маленьким:

public class GenieClient {
    private CloseableHttpClient mClient;

    public GenieClient() {
        ClassLoader classLoader = GenieClient.class.getClassLoader();
        URL resource = classLoader.getResource("org/apache/http/message/BasicLineFormatter.class");
        log.log(Level.INFO, "resource: " + resource);

        mClient = HttpClientBuilder.create().build();
    }

    public int sendRequest() {   
        int responseCode = -1;

        try {
            HttpResponse response = mClient.execute(new HttpPost("http://www.google.com"));
            responseCode = response.getStatusLine().getStatusCode();
        }
        catch(IOException ex) {
            log.log(Level.SEVERE, "IOException: " + ex.getMessage());
        }

        return responseCode;
    }
}

Вывод, который я получаю от classLoader, таков:

INFO: resource: jar:file:/home/steve/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpcore/4.3.3/f91b7a4aadc5cf486df6e4634748d7dd7a73f06d/httpcore-4.3.3.jar!/org/apache/http/message/BasicLineFormatter.class

Я использую Gradle в качестве инструмента сборки и установил зависимости, как это в моемbuild.gradle файл:

dependencies {
    compile 'org.apache.httpcomponents:httpclient:4.3.6'
}

Я также попытался включить следующее httpcore, но все еще получаю ту же ошибку:

compile 'org.apache.httpcomponents:httpcore:4.4'

Все работает нормально, только когда я запускаю свой httpClient,

Большое спасибо за любые предложения,

Ответы на вопрос(5)

Ваш ответ на вопрос