我正在使用 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 工作正常。但是当我尝试执行traverser.iterator()
第三个任务时,它会抛出一个异常说:
java.lang.IllegalAccessError: tried to access class org.neo4j.helpers.collection.WrappingResourceIterator from class org.neo4j.rest.graphdb.traversal.RestTraverser
任何人都可以检查为什么会发生这种情况,或者如果我做错了,那么正确的方法是什么。提前致谢。