Etcd 与 Java 的 SparkJava REST API 框架集成
Etcd integration with SparkJava REST API framework for Java
我正在尝试在 SparkJava 中使用以下 etcd 框架
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 一起工作,是否有任何与 SparkJava 一起工作的 etcd 客户端?
我让它与以下 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);
}
}
我正在尝试在 SparkJava 中使用以下 etcd 框架
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 一起工作,是否有任何与 SparkJava 一起工作的 etcd 客户端?
我让它与以下 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);
}
}