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
java.lang.NoClassDefFoundError :-Could not initialize class org.apache.http.impl.conn.ManagedHttpClientConnectionFactory
提问by day_dreamer
I'm working on a Spring webservice(SpringWSTemplate) and I am trying to override org.springframework.ws.transport.http.HttpComponentsMessageSender
and 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 类。