0

我正在尝试连接已启用 x-pack 并在没有任何错误的情况下启动的弹性搜索服务器(6.8.0)。当我尝试按照网页(https://www.elastic.co/guide/en/elastic-stack-overview/6.7/java-clients.html)上的步骤连接java代码时,我遇到了异常。

引起:org.elasticsearch.ElasticsearchException:失败...引起:org.elasticsearch.ElasticsearchException:无法在org.elasticsearch.plugins.PluginsService.loadPlugin(PluginsService.java)加载插件类[org.elasticsearch.xpack.XPackPlugin] :384) ~[elasticsearch-5.3.0.jar:5.3.0] 在 org.elasticsearch.plugins.PluginsService.(PluginsService.java:104) ~[elasticsearch-5.3.0.jar:5.3.0] 在 org. elasticsearch.client.transport.TransportClient.newPluginService(TransportClient.java:101) ~[elasticsearch-5.3.0.jar:5.3.0] at org.elasticsearch.client.transport.TransportClient.buildTemplate(TransportClient.java:126) ~ [elasticsearch-5.3.0.jar:5.3.0] 在 org.elasticsearch.client.transport.TransportClient.(TransportClient.java:268) ~[elasticsearch-5.3.0.jar:5.3.0] 在 org.elasticsearch。 transport.client.PreBuiltTransportClient。(PreBuiltTransportClient.java:128) ~[transport-6.2.4.jar:6.2.4] at org.elasticsearch.xpack.client.PreBuiltXPackTransportClient.(PreBuiltXPackTransportClient.java:55) ~[x-pack-transport-5.4.3 .jar:5.4.3] 在 org.elasticsearch.xpack.client.PreBuiltXPackTransportClient.(PreBuiltXPackTransportClient.java:50) ~[x-pack-transport-5.4.3.jar:5.4.3] 在 org.elasticsearch.xpack。 client.PreBuiltXPackTransportClient.(PreBuiltXPackTransportClient.java:46) ~[x-pack-transport-5.4.3.jar:5.4.3] at com.mastercard.customer.data.management.navigator.bff.config.ElasticSearchConfig.client( ElasticSearchConfig.java:56) ~[classes/:na] at com.mastercard.customer.data.management.navigator.bff.config.ElasticSearchConfig$$EnhancerBySpringCGLIB$$f999e02c.CGLIB$client$2() ~[classes/:na ] 在 com.mastercard.customer.data.management.navigator.bff.config。ElasticSearchConfig$$EnhancerBySpringCGLIB$$f999e02c$$FastClassBySpringCGLIB$$d904a6aa.invoke() ~[classes/:na] at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244) ~[spring-core-5.1 .6.RELEASE.jar:5.1.6.RELEASE] 在 org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:363) ~[spring-context-5.1.6.RELEASE.jar:5.1. 6.RELEASE] 在 com.mastercard.customer.data.management.navigator.bff.config.ElasticSearchConfig$$EnhancerBySpringCGLIB$$f999e02c.client() ~[classes/:na] 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method ) ~[na:1.8.0_162] 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_162] 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_162] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_162] at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate( SimpleInstantiationStrategy.java:154) ~[spring-beans-5.1.6.RELEASE.jar:5.1.6.RELEASE]

在多个来源搜索时
https://discuss.elastic.co/t/failed-to-load-plugin-class-org-elasticsearch-xpack-xpackplugin/183299

https://discuss.elastic.co/t/elasticsearch-doesnt-start-anymore-after-x-pack-settings/119200

还有更多类似的发现这个类来自 x-pack-api-5.4.3,jar 并且当试图在反编译器中打开这个 jar 时什么也没有发现。附加图像。我还尝试了相同 jar 的不同版本并遇到相同的问题。

在此处输入图像描述

使用的依赖项如下。

    <!-- Start x-pack -->
    <dependency>
        <groupId>org.elasticsearch.client</groupId>
        <artifactId>transport</artifactId>
        <!-- <version>6.2.4</version> -->
        <version>5.4.3</version>
    </dependency>

    <dependency>
     <groupId>org.elasticsearch.client</groupId>
     <artifactId>x-pack-transport</artifactId>
      <version>5.4.3</version>
  </dependency>

<dependency>
        <groupId>org.elasticsearch</groupId>
        <artifactId>elasticsearch</artifactId>
        <version>5.3.0</version>
    </dependency>



<dependency>
        <groupId>com.unboundid</groupId>
        <artifactId>unboundid-ldapsdk</artifactId>
        <version>3.2.0</version>
    </dependency>
    <dependency>
        <groupId>org.bouncycastle</groupId>
        <artifactId>bcprov-jdk15on</artifactId>
        <version>1.58</version>
    </dependency>
    <dependency>
        <groupId>org.bouncycastle</groupId>
        <artifactId>bcpkix-jdk15on</artifactId>
        <version>1.58</version>
    </dependency>

    <!-- End x-pack -->

并使用如下客户端代码:

client = new PreBuiltXPackTransportClient(Settings.builder()
                .put("xpack.security.transport.ssl.enabled", true)
                //.put("xpack.security.transport.ssl.key", "/path/to/client.key")
                .put("xpack.security.transport.ssl.certificate", "cert.jks")
                .put("xpack.security.transport.ssl.certificate_authorities", "cert.jks")
                .put("xpack.security.transport.ssl.enabled", "true")
                .put("xpack.security.transport.ssl.keystore.password", "changeme")
                .put("xpack.security.transport.ssl.truststore.password", "changeme")
                .build())
            .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(host), port));

感谢您的帮助。

4

0 回答 0