Интеграция Etcd с фреймворком SparkJava REST API для Java

Я пытаюсь использовать структуру etcd ниже в SparkJava.

https://github.com/AdoHe/etcd4j

Код выглядит следующим образом:

get("/hello",(request, response) -> {

String value;           


try {
    EtcdClient client = new EtcdClient(URI.create("http://127.0.0.1:2379"));
    String key = "/message";
    value = client.get(key);
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

return value;});

Однако, когда я пытаюсь получить доступ к URL-адресу, как показано ниже, http://localhost:4567/hello

Я получаю следующую ошибку

HTTP ERROR: 500
Problem accessing /hello. Reason:
java.lang.NoSuchFieldError: INSTANCE
Powered by Jetty:// 9.3.6.v20151106

Что мне здесь не хватает? etcd работает при использовании в качестве отдельного проекта с функцией main(), но не работает с SparkJava. Есть ли клиент etcd, который работает со SparkJava?


person suresh    schedule 06.09.2016    source источник


Ответы (1)


Я заставил его работать со следующим клиентом Etcd:

    <dependency>
        <groupId>org.mousio</groupId>
        <artifactId>etcd4j</artifactId>
        <version>2.12.0</version>
    </dependency>

Вот код:

private static String etcdGet(Request request, Response response) {
    EtcdClient client = new EtcdClient(URI.create("http://<ip-address>:2379"));
    String key = "/message";

    try {
        EtcdResponsePromise<EtcdKeysResponse> value;
        value = client.get(key).send();
        return value.get().getNode().getValue();
    } catch (Exception e) {
        System.out.println(e);
        throw new RuntimeException(e);
    }
}
person Matthew    schedule 15.09.2016