Servlet中的Neo4j数据库

时间:2013-03-24 05:36:19

标签: java html servlets neo4j

我有一个servlet,想要连接到Neo4j数据库。这样我就可以通过Internet从我的应用程序访问数据库了。 但是servlet会出错? 难道我做错了什么?

这是我的servlet代码。

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws     ServletException, IOException {
PrintWriter out = response.getWriter();
out.println("Hello World");

GraphDatabaseService graphDB = new GraphDatabaseFactory().newEmbeddedDatabase("C:\\Users\\Sourav\\Desktop\\db1");
}

这是网页中返回的错误。

HTTP Status 500 - Servlet execution threw an exception

type Exception report

message Servlet execution threw an exception

description The server encountered an internal error that prevented it from fulfilling     this request.

exception

javax.servlet.ServletException: Servlet execution threw an exception
root cause

java.lang.NoClassDefFoundError: org/neo4j/graphdb/factory/GraphDatabaseFactory
hello.hello.doGet(hello.java:45)
javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)

3 个答案:

答案 0 :(得分:4)

你会想要使用Neo4j的REST api。这是使用Neo4j的标准方式,如果您通过互联网访问它(未嵌入您的程序)。

您需要关注this tutorial,其中介绍了如何将Neo4j设置为具有REST API的服务器。

就个人而言,我认为使用Java嵌入它会更容易。如果您将其创建为嵌入式Java数据库,则应执行以下操作:

GraphDatabaseService dbService = new EmbeddedGraphDatabase(DB_PATH);

但是,您应该只在程序启动时执行此操作。因此,在程序启动时实例化,只需使用静态引用即可。 (或者更好的是,使用Spring并在任何需要的地方自动装配Neo4jOperations。或者最重要的是,使用Spring Data Neo4j!)

答案 1 :(得分:2)

解决!!! 我在Tomcat 7.0 \ lib中复制了Neo4j JAR文件,它完全解决了问题!!!

答案 2 :(得分:0)

我遇到了同样的问题。步骤有哪些 - 转到buildpath - >配置构建路径 选择部署程序集 确保你有Ivy(maven)库。如果不是通过add-> java build path entries-> ivy(或maven)

添加它

如果您在外部添加了neo4j库(而不是通过ivy / maven),那么在部署程序集中添加该库。 它应该解决问题