本文介绍了引起原因:java.lang.ClassNotFoundException:org.elasticsearch.transport.Netty3Plugin的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用Spring Boot 2.0.3 Release,实例化org.elasticsearch.client.Client
时遇到问题.我的代码:
I'm using Spring Boot 2.0.3 Release and i have problem while instantiating org.elasticsearch.client.Client
. My code:
Client client = new PreBuiltTransportClient(Settings.builder()
.put("cluster.name", clustername)
.build())
.addTransportAddress(
new InetSocketTransportAddress(InetAddress.getByName(host), port)
);
此代码给我错误:
Caused by: java.lang.NoClassDefFoundError: org/elasticsearch/transport/Netty3Plugin
at org.elasticsearch.transport.client.PreBuiltTransportClient.<clinit>(PreBuiltTransportClient.java:91) ~[transport-5.6.10.jar:5.6.10]
at kz.icode.idmatrix.config.ElasticsearchConfiguration.client(ElasticsearchConfiguration.java:56) ~[classes/:na]
at kz.icode.idmatrix.config.ElasticsearchConfiguration$$EnhancerBySpringCGLIB$$7e53ae93.CGLIB$client$0(<generated>) ~[classes/:na]
at kz.icode.idmatrix.config.ElasticsearchConfiguration$$EnhancerBySpringCGLIB$$7e53ae93$$FastClassBySpringCGLIB$$fef36179.invoke(<generated>) ~[classes/:na]
at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) ~[spring-core-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:361) ~[spring-context-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at kz.icode.idmatrix.config.ElasticsearchConfiguration$$EnhancerBySpringCGLIB$$7e53ae93.client(<generated>) ~[classes/:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_171]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_171]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_171]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_171]
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) ~[spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE]
... 99 common frames omitted
我使用org.elasticsearch:elasticsearch:5.6.10
和org.elasticsearch.client:client:5.6.10
.
推荐答案
仅添加spring-boot-starter-data-elasticsearch
并不能满足所有依赖关系.
Not all dependencies are satisfied by only adding spring-boot-starter-data-elasticsearch
.
有必要明确定义所有剩余的依赖项:
It's necessary to explicitly define all remaining dependencies:
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>transport</artifactId>
<version>${elasticsearch.version}</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.plugin</groupId>
<artifactId>transport-netty4-client</artifactId>
<version>${elasticsearch.version}</version>
</dependency>
如果您声明了父母,很可能会省略<version>
标签.
If you've declared a parent, most likely <version>
tag can be omitted.
这篇关于引起原因:java.lang.ClassNotFoundException:org.elasticsearch.transport.Netty3Plugin的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!