我正在使用neo4j java-rest-binding項目實現遍歷框架。 代碼如下:無法從RestTraverser訪問iterator(),它會給出異常java.lang.IllegalAccessError
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
任何人都可以請爲什麼發生這種情況,或者如果我做錯了又是什麼做的正確方法。 在此先感謝。
你可以分享完整的堆棧跟蹤嗎? –
你的客戶項目中有哪些neo4j版本?和哪個版本的java-rest-binding?他們應該匹配。 –
我使用2.0.1 neo4j和java-rest-binding(neo4j-rest-graphdb.jar)獲得了相同的'java.lang.IllegalAccessError:org/neo4j/helpers/collection/WrappingResourceIterator'。看起來像'org.neo4j.helpers.collection.WrappingResourceIterator'已經在[neo4j-kernel](https://github.com/neo4j/neo4j/blame/master/community/kernel/src/ main/java/org/neo4j/helpers/collection/WrappingResourceIterator.java) – alphageek