[英]Query a remote neo4j server via Java
誰能提供一些有關如何通過 Java 連接和查詢遠程 neo4j 服務器的示例代碼? 我不是在尋找嵌入式 neo4j 服務器實現。
這是讓這個工作的嘗試:
import org.neo4j.cypher.javacompat.ExecutionEngine;
import org.neo4j.cypher.javacompat.ExecutionResult;
import org.neo4j.graphdb.GraphDatabaseService;
import org.neo4j.rest.graphdb.RestGraphDatabase;
public static void main(String[] args) {
GraphDatabaseService neo4j = new RestGraphDatabase("neo4jurl");
ExecutionEngine engine = new ExecutionEngine(neo4j);
String myCypher = "MATCH n WHERE n.symptom = 'Xanthelasma'";
ExecutionResult result = engine.execute(myCypher);
System.out.println(result.toString());
}
這導致:
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/jersey/api/client/filter/ClientFilter
at org.neo4j.rest.graphdb.ExecutingRestAPI.createRestRequest(ExecutingRestAPI.java:82)
at org.neo4j.rest.graphdb.ExecutingRestAPI.<init>(ExecutingRestAPI.java:73)
at org.neo4j.rest.graphdb.RestAPIFacade.<init>(RestAPIFacade.java:294)
at org.neo4j.rest.graphdb.RestGraphDatabase.<init>(RestGraphDatabase.java:51)
at mapreduce.NetworkAnalysis.main(NetworkAnalysis.java:20)
Caused by: java.lang.ClassNotFoundException: com.sun.jersey.api.client.filter.ClientFilter
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 5 more
我還嘗試使用球衣來實現這一點:
String baseURI = new String("neo4jurl");
String payload = "db/data/node/5/relationships/all/CO_SYM";
Client client = ClientBuilder.newClient();
WebTarget target = client.target(baseURI + payload);
System.out.println(target.getUri());
Invocation.Builder invocationBuilder = target.request();
Response response = invocationBuilder.get();
System.out.println(response.getStatus());
System.out.println(response.readEntity(String.class));
這確實從 neo4j 返回數據,但它是 html 格式,我想利用密碼查詢語言。
不要那樣做!
用
CypherQueryEngine cypher = new RestCypherQueryEngine(restGraphDB.getRestAPI());
cypher.query(statement, params);
對於您的第二個示例,您的 base-uri 是錯誤的。 您還必須添加content-type
並accept
標題為application/json
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.