引起原因:java.lang.ClassNotFoundException:

我正在使用Spring Boot 2.0.3 Release,并且在实例化时遇到问题org.elasticsearch.client.Client。我的代码:


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]


莫回无
浏览 547回答 2
2回答

子衿沉夜

并非仅通过添加就可以满足所有依赖关系spring-boot-starter-data-elasticsearch。必须明确定义所有剩余的依赖项:&nbsp; &nbsp; <dependency>&nbsp; &nbsp; &nbsp; &nbsp; <groupId>org.elasticsearch.client</groupId>&nbsp; &nbsp; &nbsp; &nbsp; <artifactId>transport</artifactId>&nbsp; &nbsp; &nbsp; &nbsp; <version>${elasticsearch.version}</version>&nbsp; &nbsp; </dependency>&nbsp; &nbsp; <dependency>&nbsp; &nbsp; &nbsp; &nbsp; <groupId>org.elasticsearch.plugin</groupId>&nbsp; &nbsp; &nbsp; &nbsp; <artifactId>transport-netty4-client</artifactId>&nbsp; &nbsp; &nbsp; &nbsp; <version>${elasticsearch.version}</version>&nbsp; &nbsp; </dependency>如果您已声明为父母,则最有可能的<version>标记可以省略。

喵喔喔

<dependency>&nbsp;&nbsp; &nbsp; <groupId>org.elasticsearch.client</groupId>&nbsp;&nbsp; &nbsp; <artifactId>transport</artifactId>&nbsp;</dependency>这为我解决了。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java