2014-01-14 2 views
1

관리되지 않는 확장 프로그램을 작성 중이며 Java API로 색인에 액세스하는 데 문제가 있습니다.Neo4j 색인이 Java API를 사용하여 작동하지 않습니다.

코드 :

package org.neo4j.parent.parentextension; 

import org.codehaus.jackson.map.ObjectMapper; 
import org.neo4j.cypher.javacompat.ExecutionEngine; 
import org.neo4j.cypher.javacompat.ExecutionResult; 
import org.neo4j.graphdb.GraphDatabaseService; 
import org.neo4j.graphdb.index.Index; 
import org.neo4j.graphdb.index.IndexManager; 
import org.neo4j.graphdb.Node; 

import javax.ws.rs.GET; 
import javax.ws.rs.Path; 
import javax.ws.rs.PathParam; 
import javax.ws.rs.core.Context; 
import javax.ws.rs.core.Response; 
import java.io.IOException; 
import java.util.ArrayList; 
import java.util.Collections; 
import java.util.List; 
import java.util.Map; 

@Path("/parent") 
public class ParentDistance { 

@GET 
@Path("/helloworld") 
public String helloWorld() { 
    return "Hello World!"; 
} 

@GET 
@Path("/common/{acc1}/{acc2}") 
public String getCommon(@PathParam("acc1") String acc1, @PathParam("acc2") String acc2, @Context GraphDatabaseService db) throws IOException { 

    return db.index().nodeIndexNames().toString(); 

} 



} 

helloworld를 호출 작업과 사이퍼 쿼리를 실행 다른 방법을 수행합니다. 그러나 모든 메소드에서 IndexManager 또는 인덱스가 호출 되 자마자 아래의 모든 항목이 작동하지 않습니다. 어떤 힌트를 찾아야할까요?

감사합니다.

답변

1

"작동 중지"란 무엇을 의미합니까?

로그에 예외가 있습니까?

Neo4j 2.0에서는 트랜잭션 내에서 읽기 작업을 수행해야합니다. 이처럼

: 그것은 작동

@GET 
@Path("/common/{acc1}/{acc2}") 
public String getCommon(@PathParam("acc1") String acc1, @PathParam("acc2") String acc2, @Context GraphDatabaseService db) throws IOException { 
    try (Transaction tx = db.beginTx()) { 
     String result = db.index().nodeIndexNames().toString(); 
     tx.success(); 
    } 
} 
+0

! 고마워요! –

관련 문제