Невозможно создать упругий поиск PreBuiltXPackTransportClient x-pack - PullRequest
0 голосов
/ 11 июня 2018

пакет часов.Я добавил зависимость x-pack.

<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>x-pack-transport</artifactId>
    <version>5.3.3</version>
</dependency>
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.7</version>
</dependency>
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.7</version>
</dependency>

Я могу создать наблюдателя, используя запрос curl, но не могу создать из кода Java.Я создал наблюдателя с помощью curl и пытаюсь получить его из кода jave.вот мой код.

package watcher;

import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Map;

import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
import org.elasticsearch.xpack.XPackClient;
import org.elasticsearch.xpack.client.PreBuiltXPackTransportClient;
import org.elasticsearch.xpack.watcher.client.WatcherClient;
import org.elasticsearch.xpack.watcher.support.xcontent.XContentSource;
import org.elasticsearch.xpack.watcher.transport.actions.get.GetWatchResponse;

public class GetWatcher {

    public static void main(String[] args) throws UnknownHostException {

        @SuppressWarnings("resource")
        TransportClient client = new PreBuiltXPackTransportClient(
                Settings.builder().put("cluster.name", "my-application").build())
                        .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), 9300));

        XPackClient xpackClient = new XPackClient(client);
        WatcherClient watcherClient = xpackClient.watcher();

        GetWatchResponse getWatchResponse = watcherClient.prepareGetWatch("my-watch").get();
        XContentSource source = getWatchResponse.getSource();
        Map<String, Object> map = source.getAsMap();
        for (String key : map.keySet()) {
            System.out.println(key);
        }

    }
}

выдает ошибку -

ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.
Exception in thread "main" java.lang.ExceptionInInitializerError
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at org.elasticsearch.plugins.PluginsService.loadPlugin(PluginsService.java:383)
    at org.elasticsearch.plugins.PluginsService.<init>(PluginsService.java:101)
    at org.elasticsearch.client.transport.TransportClient.newPluginService(TransportClient.java:101)
    at org.elasticsearch.client.transport.TransportClient.buildTemplate(TransportClient.java:126)
    at org.elasticsearch.client.transport.TransportClient.<init>(TransportClient.java:268)
    at org.elasticsearch.transport.client.PreBuiltTransportClient.<init>(PreBuiltTransportClient.java:127)
    at org.elasticsearch.xpack.client.PreBuiltXPackTransportClient.<init>(PreBuiltXPackTransportClient.java:55)
    at org.elasticsearch.xpack.client.PreBuiltXPackTransportClient.<init>(PreBuiltXPackTransportClient.java:50)
    at org.elasticsearch.xpack.client.PreBuiltXPackTransportClient.<init>(PreBuiltXPackTransportClient.java:46)
    at watcher.GetWatcher.main(GetWatcher.java:21)
Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: com.unboundid.util.Debug
    at org.elasticsearch.xpack.XPackPlugin$1.run(XPackPlugin.java:160)
    at org.elasticsearch.xpack.XPackPlugin$1.run(XPackPlugin.java:154)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.elasticsearch.xpack.XPackPlugin.<clinit>(XPackPlugin.java:154)
    ... 14 more
Caused by: java.lang.ClassNotFoundException: com.unboundid.util.Debug
    at java.net.URLClassLoader$1.run(URLClassLoader.java:370)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at org.elasticsearch.xpack.XPackPlugin$1.run(XPackPlugin.java:158)
    ... 17 more

Я пробовал с PreBuiltTransportClient клиентом.Я могу получить все индексы эластичного поиска с помощью этого клиента, но не могу создать или получить наблюдателя.Выдает ошибку-

Exception in thread "main" java.lang.NullPointerException
    at org.elasticsearch.client.transport.TransportProxyClient.lambda$execute$0(TransportProxyClient.java:59)
    at org.elasticsearch.client.transport.TransportClientNodesService.execute(TransportClientNodesService.java:247)
    at org.elasticsearch.client.transport.TransportProxyClient.execute(TransportProxyClient.java:59)
    at org.elasticsearch.client.transport.TransportClient.doExecute(TransportClient.java:366)
    at org.elasticsearch.client.support.AbstractClient.execute(AbstractClient.java:404)
    at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:80)
    at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:54)
    at org.elasticsearch.action.ActionRequestBuilder.get(ActionRequestBuilder.java:62)

1 Ответ

0 голосов
/ 11 июня 2018

Основная причина

Caused by: java.util.zip.ZipException: invalid LOC header (bad signature)

подсказывает мне, что в вашей среде есть поврежденный файл JAR.

Крест отправлено с https://github.com/elastic/elasticsearch/issues/31245

...