我有一个MavenJava项目,它使用HttpClient来执行HTTP请求。在我的本地JavaWeb Server上,一切正常。但是在我将其部署到SAP Hana云平台后,我收到以下错误:
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:72)
at org.apache.http.impl.conn.ManagedHttpClientConnectionFactory.<init>(ManagedHttpClientConnectionFactory.java:84)
at org.apache.http.impl.conn.ManagedHttpClientConnectionFactory.<clinit>(ManagedHttpClientConnectionFactory.java:59)
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager$InternalConnectionFactory.<init>(PoolingHttpClientConnectionManager.java:493)
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.<init>(PoolingHttpClientConnectionManager.java:149)
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.<init>(PoolingHttpClientConnectionManager.java:138)
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.<init>(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)
...
我的依赖是这样的:
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.3.5</version>
<scope>compile</scope>
</dependency>
根据这个问题,java.lang.NoSuchFieldError:org.apache.http.message.basicInfo。在Java应用程序中的Mashape Unirest实例中,我尝试使用以下代码获取类加载器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版本作为失败的来源。这个错误还有其他原因吗?
更新
在评论中讨论之后,我将更新我的问题:
依赖关系树:
所以现在我可以看到版本冲突,我删除了< code>neo-java-web-api。类加载器现在再次返回版本4.3.2。但是我仍然从一开始就得到错误。
我仍然找不到解决实际问题的方法。但至少我可以找到一个变通办法。我将范围更改为<代码>
问题内容: 从HttpClient 4.3开始,我一直在使用HttpClientBuilder。我正在连接到具有基本身份验证的REST服务。我将凭据设置如下: 但是,这不起作用(我正在使用的REST服务返回401)。怎么了? 问题答案: 从此处的 抢先身份验证 文档中: http://hc.apache.org/httpcomponents-client- ga/tutorial/html/aut
问题内容: 我将Apache的HttpClient组件用于以下简单程序,并且看到以下异常: 我在用 Httpclient-4.3.3.jar Httpcore-4.3.2.jar 有任何想法吗? 问题答案: 此代码有效…没有任何错误..如果您使用的是类似import,请检查软件包。
问题内容: 尝试通过StormSubmitter提交结构时,我得到 我正在使用Spring。 我没有在Spout / Bolt构造函数中初始化HttpClient。相反,它是在prepare()通过螺栓方法从Spring Context中获取的类的构造函数中初始化的 代码的结构如下- SomeBolt.java SomeClient.java AppContext.java 问题答案: 我遇到了类