0

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 つのタスクを実行する必要があります。

  1. ノード番号に関連するすべてのノード ID を出力します。21
  2. ノード番号に関連するすべての関係 ID を出力します。21
  3. ノード番号に関連するすべてのパスをトラバースします。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

なぜこれが起こっているのか、または私が間違っている場合は、それを行う正しい方法は何かを誰でも確認できますか. 前もって感謝します。

4

1 に答える 1