java.lang.NoClassDefFoundError :-无法初始化类 org.apache.http.impl.conn.ManagedHttpClientConnectionFactory

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/29006744/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-11-02 14:33:04  来源:igfitidea点击:

java.lang.NoClassDefFoundError :-Could not initialize class org.apache.http.impl.conn.ManagedHttpClientConnectionFactory

javaspringhttpclient

提问by day_dreamer

I'm working on a Spring webservice(SpringWSTemplate) and I am trying to override org.springframework.ws.transport.http.HttpComponentsMessageSenderand I have a code like below:

我正在开发一个 Spring 网络服务(SpringWSTemplate),我正在尝试覆盖org.springframework.ws.transport.http.HttpComponentsMessageSender,我有一个如下所示的代码:

public class CustomHttpComponentsMessageSender extends
org.springframework.ws.transport.http.HttpComponentsMessageSender {
@Override
public WebServiceConnection createConnection(URI uri) throws IOException {

CookieStore cookieStore = new BasicCookieStore();
HttpComponentsConnection conn = (HttpComponentsConnection) super
.createConnection(uri);
HttpClientBuilder httpClientBuilder=HttpClientBuilder.create();
HttpClient httpclient = httpClientBuilder.setDefaultCookieStore(cookieStore).build();
HttpPost httpGet = new HttpPost(uri);
HttpResponse response = httpclient.execute(httpGet);
return conn;
}

}

When the code execution reaches line : HttpClient httpclient = httpClientBuilder.setDefaultCookieStore(cookieStore).build();

当代码执行到达 line 时: HttpClient httpclient = httpClientBuilder.setDefaultCookieStore(cookieStore).build();

I get the following exception

我收到以下异常

INFO   | jvm 1    | main    | 2015/03/12 14:48:41.707 | Mar 12, 2015 2:48:41 PM org.apache.catalina.core.StandardWrapperValve invoke
INFO   | jvm 1    | main    | 2015/03/12 14:48:41.709 | SEVERE: Servlet.service() for servlet [DispatcherServlet] in context with path [] threw exception [Handler processing failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class org.apache.http.impl.conn.ManagedHttpClientConnectionFactory] with root cause
INFO   | jvm 1    | main    | 2015/03/12 14:48:41.709 | java.lang.NoClassDefFoundError: Could not initialize class org.apache.http.impl.conn.ManagedHttpClientConnectionFactory
INFO   | jvm 1    | main    | 2015/03/12 14:48:41.710 |     at org.apache.http.impl.conn.PoolingHttpClientConnectionManager$InternalConnectionFactory.<init>(PoolingHttpClientConnectionManager.java:487)
INFO   | jvm 1    | main    | 2015/03/12 14:48:41.710 |     at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.<init>(PoolingHttpClientConnectionManager.java:147)
INFO   | jvm 1    | main    | 2015/03/12 14:48:41.710 |     at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.<init>(PoolingHttpClientConnectionManager.java:136)
INFO   | jvm 1    | main    | 2015/03/12 14:48:41.710 |     at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.<init>(PoolingHttpClientConnectionManager.java:112)
INFO   | jvm 1    | main    | 2015/03/12 14:48:41.710 |     at org.apache.http.impl.client.HttpClientBuilder.build(HttpClientBuilder.java:726)
INFO   | jvm 1    | main    | 2015/03/12 14:48:41.710 |     at com.utas.integrations.documentum.webservices.impl.CustomHttpComponentsMessageSender.createConnection(CustomHttpComponentsMessageSender.java:30)
INFO   | jvm 1    | main    | 2015/03/12 14:48:41.710 |     at org.springframework.ws.client.support.WebServiceAccessor.createConnection(WebServiceAccessor.java:107)
INFO   | jvm 1    | main    | 2015/03/12 14:48:41.710 |     at org.springframework.ws.client.core.WebServiceTemplate.sendAndReceive(WebServiceTemplate.java:535)
INFO   | jvm 1    | main    | 2015/03/12 14:48:41.710 |     at org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:386)
INFO   | jvm 1    | main    | 2015/03/12 14:48:41.710 |     at org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:380)
INFO   | jvm 1    | main    | 2015/03/12 14:48:41.710 |     at org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:372)
INFO   | jvm 1    | main    | 2015/03/12 14:48:41.710 |     at 

I use the jars in my build path and I have entries of jars in my classpath.

我在构建路径中使用了 jars,并且我的类路径中有 jars 条目。

<classpathentry kind="lib" path="lib/httpclient-4.3.3.jar"/>
<classpathentry kind="lib" path="lib/commons-logging-1.1.3.jar"/>
<classpathentry kind="lib" path="/sapadtreco/lib/httpmime-4.3.1.jar"/>
<classpathentry kind="lib" path="lib/spring-ws-core-2.1.4.RELEASE.jar"/>
<classpathentry kind="lib" path="lib/fluent-hc-4.3.jar"/>

Quick help is greately appreciated.

非常感谢快速帮助。

回答by Balaji Katika

It could be due to the invalid/corrupt/missing httpclient-4.3.3.jar file in the class path. Try exploding this file and check if its valid and contains the ManagedHttpClientConnectionFactory class inside it.

这可能是由于类路径中的 httpclient-4.3.3.jar 文件无效/损坏/丢失所致。尝试分解此文件并检查其是否有效并在其中包含 ManagedHttpClientConnectionFactory 类。