HTTPClient Example - Exception in thread “main” java.lang.NoSuchFieldError: INSTANCE

后端 未结 8 821
孤城傲影
孤城傲影 2020-11-29 10:22

I am using HttpClient components from Apache for the following simple program and I see the below exception:

Exception in thread \"main\" java.lang.NoSuchFieldErr         


        
8条回答
  •  不知归路
    2020-11-29 10:47

    Looking at the source code of DefaultHttpRequestWriterFactory

    package org.apache.http.impl.io;
    
    import org.apache.http.HttpRequest;
    import org.apache.http.annotation.Immutable;
    import org.apache.http.io.HttpMessageWriter;
    import org.apache.http.io.HttpMessageWriterFactory;
    import org.apache.http.io.SessionOutputBuffer;
    import org.apache.http.message.BasicLineFormatter;
    import org.apache.http.message.LineFormatter;
    
    @Immutable
    
    public class  [More ...] DefaultHttpRequestWriterFactory implements HttpMessageWriterFactory {
    
        public static final DefaultHttpRequestWriterFactory INSTANCE = new DefaultHttpRequestWriterFactory();
    
        private final LineFormatter lineFormatter;
    
        public  [More ...] DefaultHttpRequestWriterFactory(final LineFormatter lineFormatter) {
            super();
            this.lineFormatter = lineFormatter != null ? lineFormatter : BasicLineFormatter.INSTANCE;
        }
    
        public  [More ...] DefaultHttpRequestWriterFactory() {
            this(null);
        }
    
        public HttpMessageWriter  [More ...] create(final SessionOutputBuffer buffer) {
            return new DefaultHttpRequestWriter(buffer, lineFormatter);
        }
    
    }
    

    Are you sure you are using HttpCore 4.3.2? DefaultHttpRequestWriterFactory try to resolve

    BasicLineFormatter.INSTANCE
    

    field but can not find it.

    Check your classpath for libraries which could contains another BasicLineFormatter class, maybe you have a HttpCore from an old version in conflict with the 4.3.2 version.

提交回复
热议问题