我有一个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)
答案 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),那么在部署程序集中添加该库。 它应该解决问题