当前位置: 首页 > 知识库问答 >
问题:

HttpClientBuilder - java.lang.NoSuchFieldError: INSTANCE

潘宸
2023-03-14

我有一个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。但是我仍然从一开始就得到错误。

共有1个答案

冯霖
2023-03-14

我仍然找不到解决实际问题的方法。但至少我可以找到一个变通办法。我将范围更改为<代码>

 类似资料:
  • 问题内容: 从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 问题答案: 我遇到了类

相关问答

相关文章

相关阅读