2012-02-24 3 views
0

1) Я использую Resteasy, чтобы предоставить веб-службу RESTful, которая дает доступ к определенной базе данных графиков Neo4j.Как подключиться к Neo4j перед каждым запросом на Resteasy?

С Resteasy, этот веб-ресурс (GraphResource.java) выглядит следующим образом:

@Path("graph") 
public class GraphResource { 

    @GET 
    @Path("users/{id}") 
    @Produces(MediaType.APPLICATION_JSON) 
    public String getUserInfos(@PathParam("id") String id) { 
     // Search the database, get a string representation and return it 
    } 
} 

Я хотел бы получить доступ к БД в методе getUserInfos. Я знаю, что я должен создать экземпляр объекта Graph (с Gremlin):

Graph graph = new Neo4jGraph("/tmp/neo4j"); 

... но я не знаю, где это самое лучшее место.

Считаете ли вы, что PreProcessInterceptor может пригодиться? Я никогда не видел в нем примера с подключением к БД.

2) Должен ли объект Graph быть статически определен? Должна ли быть разделена между всеми запросами? Как сделать два запроса не запутаться?

ответ

0

Я использую Джерси, но мы делаем то же самое - предоставляя услугу REST, которая использует neo4j под обложками. Я создаю синглтон с методом getDb(), который в основном получает дескриптор neo4j db. ДБ можно использовать несколькими потоками - вам просто нужно убедиться, что вы создаете один и тот же db несколько раз.

Смежные вопросы