neo4j java-rest-binding 프로젝트를 사용하여 순회 프레임 워크를 구현하고 있습니다. 어떤 노드와 관련된RestTraverser에서 iterator()에 액세스 할 수 없으면 java.lang.IllegalAccessError 예외가 발생합니다.
- 인쇄 모든 노드 ID를 : 코드에 주석으로 내가 3 개 작업을 할 필요가
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()); }
다음과 같이 코드입니다. 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
사람이 이런 일이 아니면 내가 잘못 다음 작업을 수행 할 수있는 권리 방법이 일을하고있는 경우 원인을 확인하십시오 수 있습니다. 미리 감사드립니다.
전체 스택 추적을 공유 할 수 있습니까? –
클라이언트 프로젝트에 어떤 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/)에서'package' visbile처럼 보입니다. – alphageek