繁体   English   中英

java.lang.NoSuchMethodError:org / apache / http / conn / scheme / Scheme。 <init> (Ljava / lang / String; ILorg / apache / http / conn / scheme / SchemeSocketFactory;)V

[英]java.lang.NoSuchMethodError: org/apache/http/conn/scheme/Scheme.<init>(Ljava/lang/String;ILorg/apache/http/conn/scheme/SchemeSocketFactory;)V

我正在尝试通过使用HttpComponentsMessageSender在Spring WebServiceTemplate中设置ConnectionTimeoutReadTimeout 但是,我正在为SchemeSocketFactory类获取NoSuchMethodError

<bean
    class="org.springframework.ws.transport.http.HttpComponentsMessageSender"
    id="timeoutId">
    <property name="connectionTimeout" value="3000" />
    <property name="readTimeout" value="3000" />
</bean>

Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.ws.transport.http.HttpComponentsMessageSender]: Constructor threw exception; nested exception is java.lang.NoSuchMethodError: org/apache/http/conn/scheme/Scheme.<init>(Ljava/lang/String;ILorg/apache/http/conn/scheme/SchemeSocketFactory;)V
    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:154)
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:89)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1147)
    ... 65 more
Caused by: java.lang.NoSuchMethodError: org/apache/http/conn/scheme/Scheme.<init>(Ljava/lang/String;ILorg/apache/http/conn/scheme/SchemeSocketFactory;)V
    at org.apache.http.impl.conn.SchemeRegistryFactory.createDefault(SchemeRegistryFactory.java:51)
    at org.apache.http.impl.conn.PoolingClientConnectionManager.<init>(PoolingClientConnectionManager.java:96)
    at org.springframework.ws.transport.http.HttpComponentsMessageSender.<init>(HttpComponentsMessageSender.java:77)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:80)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:57)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:539)
    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:142)
    ... 67 more

我认为修订包升级将为您解决此问题。 WebSphere拥有Apache HTTP客户端的内部副本(由其JAX-RS实现使用),在修订包8.5.5.9之前,该版本对安装的应用程序可见。 如果要在此之前在修订包上使用自己的副本,则需要利用PARENT_LAST类加载器委托或隔离的共享库,以确保该类加载器加载您自己的Apache HTTP副本而不是WebSphere的副本。

NoSuchMethodError指示运行时可用的类与用于编译代码的类不同。

通常可以归结为在类路径上具有同一类的多个版本。 仔细检查该类是否存在问题,并删除不需要的版本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM