HttpClientBuilder – java.lang.NoSuchFieldError:INSTANCE
我有一个Maven Java项目,它使用HttpClient来执行HTTP请求。 在我的本地Java Web Server上,一切正常。 但在我将其部署到SAP Hana Cloud Platform后,我收到以下错误:
java.lang.NoSuchFieldError: INSTANCE at org.apache.http.impl.io.DefaultHttpRequestWriterFactory.(DefaultHttpRequestWriterFactory.java:52) at org.apache.http.impl.io.DefaultHttpRequestWriterFactory.(DefaultHttpRequestWriterFactory.java:56) at org.apache.http.impl.io.DefaultHttpRequestWriterFactory.(DefaultHttpRequestWriterFactory.java:46) at org.apache.http.impl.conn.ManagedHttpClientConnectionFactory.(ManagedHttpClientConnectionFactory.java:72) at org.apache.http.impl.conn.ManagedHttpClientConnectionFactory.(ManagedHttpClientConnectionFactory.java:84) at org.apache.http.impl.conn.ManagedHttpClientConnectionFactory.(ManagedHttpClientConnectionFactory.java:59) at org.apache.http.impl.conn.PoolingHttpClientConnectionManager$InternalConnectionFactory.(PoolingHttpClientConnectionManager.java:493) at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.(PoolingHttpClientConnectionManager.java:149) at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.(PoolingHttpClientConnectionManager.java:138) at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.(PoolingHttpClientConnectionManager.java:114) at org.apache.http.impl.client.HttpClientBuilder.build(HttpClientBuilder.java:726) at com.sap.hana.cloud.odata.service.OlingoSampleApp.getHttpclient(OlingoSampleApp.java:382) at com.sap.hana.cloud.odata.service.OlingoSampleApp.getCsrfToken(OlingoSampleApp.java:374) at com.sap.hana.cloud.odata.service.ODataCalls.doGet(ODataCalls.java:163) ...
我的依赖关系如下:
org.apache.httpcomponents httpclient 4.3.5 compile
根据这个问题来自Java应用程序中的Mashape Unirest的java.lang.NoSuchFieldError:org.apache.http.message.BasicLineFormatter.INSTANCE我尝试使用以下代码来获取ClassLoader Ressource。
ClassLoader classLoader = this.getClass().getClassLoader(); URL resource = classLoader.getResource("org/apache/http/impl/client/HttpClientBuilder.class"); return resource;
它返回以下内容
"jar:file:/some/path/WEB-INF/lib/httpclient-4.3.5.jar!/org/apache/http/impl/client/HttpClientBuilder.class"
你可以看到jar版本是一样的。 我看到的每个类似的问题都有不连贯的jar版本作为失败的根源。 这个错误还有其他原因吗?
更新
在评论中讨论后,我将更新我的问题:
依赖树:
所以现在我可以看到版本冲突,我删除了neo-java-web-api
。 classLoader现在再次返回版本4.3.2。 但我仍然从一开始就得到错误。
现在,没有neo-java-web-api
的新的完整依赖关系树如下所示:
我仍然无法找到实际问题的解决方案。 但至少我可以找到一个解决方法。 我将范围更改为
并且仅使用4.1.4版中提供的函数。 例如new DefaultHttpClient(cm);
而不是HttpClientBuilder.create().build();
- Http Range请求属性?
- RESTEasy客户端框架身份validation凭据
- 尝试在google app engine for java中实现异步http时遇到奇怪的exception
- res.flushBuffer()vs res.getOutputStream()。flush();
- 如何在HTTP响应体(使用Spark)中发送QR码的PNG?
- 如何在MainActivity.java中创建简单的HTTP请求? (Android Studio)
- 调用Restful Webservice时,Uri不是绝对exception
- 请求标头太大
- 我可以覆盖使用java的HttpUrlConnection类的Host头吗?