2016-11-01 28 views
0

我有一个Spring引导应用程序,并具有可正确引导的外部Elasticsearch服务器。一旦我将Selenium添加到POM中,我会看到下面的错误。任何帮助如何解决将不胜感激。Spring Boot Elasticsearch包含Selenium Jar时的TransportClient创建失败

. 
. 
. 
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.elasticsearch.client.Client]: Factory method 'elasticsearchClient' threw exception; nested exception is java.lang.NoSuchMethodError: org.jboss.netty.channel.socket.nio.NioClientSocketChannelFactory.<init>(Ljava/util/concurrent/Executor;ILorg/jboss/netty/channel/socket/nio/WorkerPool;Lorg/jboss/netty/util/Timer;)V 
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:189) ~[spring-beans-4.3.3.RELEASE.jar:4.3.3.RELEASE] 
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:588) ~[spring-beans-4.3.3.RELEASE.jar:4.3.3.RELEASE] 
    ... 54 common frames omitted 
Caused by: java.lang.NoSuchMethodError: org.jboss.netty.channel.socket.nio.NioClientSocketChannelFactory.<init>(Ljava/util/concurrent/Executor;ILorg/jboss/netty/channel/socket/nio/WorkerPool;Lorg/jboss/netty/util/Timer;)V 
    at org.elasticsearch.transport.netty.NettyTransport.createClientBootstrap(NettyTransport.java:354) ~[elasticsearch-2.4.0.jar:2.4.0] 
    at org.elasticsearch.transport.netty.NettyTransport.doStart(NettyTransport.java:290) ~[elasticsearch-2.4.0.jar:2.4.0] 
    at org.elasticsearch.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:68) ~[elasticsearch-2.4.0.jar:2.4.0] 
    at org.elasticsearch.transport.TransportService.doStart(TransportService.java:182) ~[elasticsearch-2.4.0.jar:2.4.0] 
    at org.elasticsearch.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:68) ~[elasticsearch-2.4.0.jar:2.4.0] 
    at org.elasticsearch.client.transport.TransportClient$Builder.build(TransportClient.java:162) ~[elasticsearch-2.4.0.jar:2.4.0] 
    at org.springframework.data.elasticsearch.client.TransportClientFactoryBean.buildClient(TransportClientFactoryBean.java:89) ~[spring-data-elasticsearch-2.0.3.RELEASE.jar:na] 
    at org.springframework.data.elasticsearch.client.TransportClientFactoryBean.afterPropertiesSet(TransportClientFactoryBean.java:85) ~[spring-data-elasticsearch-2.0.3.RELEASE.jar:na] 
    at org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchAutoConfiguration.createTransportClient(ElasticsearchAutoConfiguration.java:116) ~[spring-boot-autoconfigure-1.4.1.RELEASE.jar:1.4.1.RELEASE] 
    at org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchAutoConfiguration.createClient(ElasticsearchAutoConfiguration.java:93) ~[spring-boot-autoconfigure-1.4.1.RELEASE.jar:1.4.1.RELEASE] 
    at org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchAutoConfiguration.elasticsearchClient(ElasticsearchAutoConfiguration.java:84) ~[spring-boot-autoconfigure-1.4.1.RELEASE.jar:1.4.1.RELEASE] 
    at org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchAutoConfiguration$$EnhancerBySpringCGLIB$$6e6239c5.CGLIB$elasticsearchClient$1(<generated>) ~[spring-boot-autoconfigure-1.4.1.RELEASE.jar:1.4.1.RELEASE] 
    at org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchAutoConfiguration$$EnhancerBySpringCGLIB$$6e6239c5$$FastClassBySpringCGLIB$$4fb391a9.invoke(<generated>) ~[spring-boot-autoconfigure-1.4.1.RELEASE.jar:1.4.1.RELEASE] 
    at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) ~[spring-core-4.3.3.RELEASE.jar:4.3.3.RELEASE] 
    at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:356) ~[spring-context-4.3.3.RELEASE.jar:4.3.3.RELEASE] 
    at org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchAutoConfiguration$$EnhancerBySpringCGLIB$$6e6239c5.elasticsearchClient(<generated>) ~[spring-boot-autoconfigure-1.4.1.RELEASE.jar:1.4.1.RELEASE] 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_60] 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_60] 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_60] 
    at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_60] 
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:162) ~[spring-beans-4.3.3.RELEASE.jar:4.3.3.RELEASE] 
    ... 55 common frames omitted 

回答

1

谢谢,@Joe Reymann,你救了我的一天。

我将我的弹簧引导从1.3.5升级到1.4.3,我遇到了和你一样的问题,Selenium正在使用旧的netty.jar。

Maven的,从硒网状排除,行家会拉春天启动的网状

<dependency> 
    <groupId>org.seleniumhq.selenium</groupId> 
    <artifactId>selenium-java</artifactId> 
    <version>2.45.0</version> 
    <exclusions> 
     <exclusion> 
      <groupId>io.netty</groupId> 
      <artifactId>netty</artifactId> 
     </exclusion> 
    </exclusions> 
</dependency> 
2

看来Selenium正在拉一个旧的netty-3.5.7.Final.jar。没有Selenium的Spring一直在使用netty-3.10.6.Final.jar。我无法用Maven解决这个问题。我使用Gradle创建了一个新项目并复制到我的所有代码中。现在所有的作品。

相关问题