neo4j java-rest-binding プロジェクトを使用してトラバーサル フレームワークを実装しています。コードは次のとおりです。
RestAPI db = new RestAPIFacade("http://localhost:7474/db/data");
RestNode n21 = db.getNodeById(21);
Map<String,Object> traversalDesc = new HashMap<String, Object>();
traversalDesc.put("order", "breadth_first");
traversalDesc.put("uniqueness", "node_global");
traversalDesc.put("uniqueness", "relationship_global");
traversalDesc.put("returnType", "fullpath");
traversalDesc.put("max_depth", 2);
RestTraverser traverser = db.traverse(n21, traversalDesc);
Iterable<Node> nodes = traverser.nodes();
System.out.println("All Nodes:"); // First Task
for(Node n:nodes){
System.out.println(n.getId());
}
Iterable<Relationship> rels = traverser.relationships();
System.out.println("All Relations:"); // Second Task
for(Relationship r:rels){
System.out.println(r.getId());
}
Iterator<Path> paths = traverser.iterator(); // Third Task
while(paths.hasNext()){
System.out.println(paths.next());
}
コードでコメントされているように、3 つのタスクを実行する必要があります。
- ノード番号に関連するすべてのノード ID を出力します。21
- ノード番号に関連するすべての関係 ID を出力します。21
- ノード番号に関連するすべてのパスをトラバースします。21
タスク 1 と 2 は正常に動作しています。しかし、3番目のタスクでやろうとするとtraverser.iterator()
、次のような例外がスローされます:
java.lang.IllegalAccessError: tried to access class org.neo4j.helpers.collection.WrappingResourceIterator from class org.neo4j.rest.graphdb.traversal.RestTraverser
なぜこれが起こっているのか、または私が間違っている場合は、それを行う正しい方法は何かを誰でも確認できますか. 前もって感謝します。